Własne funkcje pisane w PHP - zgadywanie płci

DZIAŁANIE: Adam = Mężczyzna

Monika = Kobieta

 

Kod:

Ewentualne Objaśnienia:

Jest to bardzo prosta funkcja która na podstawie podanego imienia stara się ocenić płeć tej osoby. Jak widać jeśli imię kończy się na literkę a - podaje, że to kobieta; w przeciwnym wypadku, że mężczyzna. Ale wiadomo, że nie jest to dobra metoda np imię Kuba zostanie odebrane jako kobieta itd.
Warto spojrzeć na nowe funkcję jakich wcześniej nie pokazywałem. Musimy jakoś w końcu wyodrębnić ostatnią literę podanego imienia. Posłużymy się do tego celu dwoma funkcjami. Jedna pozwala na uzyskanie dowolnego ciągu danego tekstu, a druga zwraca długość łańcucha określonego pewnym parametrem.

Popatrzmy:
- substr (parametr, od którego znaku ma zacząć, długość łańcucha) funkcja ta zwraca podłańcuch pierwszego parametru, zaczynając od znaku o numerze określonym drugim parametrem oraz długości określonej parametrem trzecim. Należy pamiętać, że znaki są liczone od0 !
- strlen (parametr) zwraca długość łańcucha określonego parametrem ( czyli jak podamy np. strlen od słowa Adam to zwróci nam 4 - bo Adam ma 4 literki).

Więc popatrzmy teraz na linijkę:
$ostatnialitera = substr ($imie, strlen($imie)-1,1); może się to wydawać skomplikowane ale wcale nie jest ! Popatrzmy dobrze. Np mamy imię Bartek. Podajemy go w funkcji czyli: print ("Bartek = ".plec('Bartek'); . W tym momencie jest określana wartość zmiennej $ostatnialitera.
Zmienna $imie przyjmuje wartość 'Bartek'. Tak więc mamy słowo Bartek, dalej mamy w funkcji substr określone poprzez funkcję strlen, od którego znaku ma zacząć zwracac funkcja substr. Czyli: strlen($imie)-1 daje nam wartość: 6-1 = 5. Teraz funkcja substr wie, że ma zacząć od znaku 5 czyli od literki 'k'.
Pamiętaj. że funcja substr liczy od 0 tak więc literka ostatnia czyli 'k' ma numerek 5 a nie 6! 0 = b, 1 = a,2 = r,3 = t,4 = e,5 = k.
Następnie ostatni parametr funkcji substr określa, że należy zwrócić tylko jeden znak. Tak więc zwracana jest literka ostatnia - czyli 'a'. Zmienna $ostatnialitera przyjmuje wartość a. Dalej już wiecie co się dzieje :)