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 :)