More specifically, an ampersand (&) prepended to an argument name means that the argument will be passed by reference (http://www.php.net/manual/en/language.references.pass.php).
Každá funkce v manuálu je pro rychlou referenci zdokumentována. Když víte, jak číst a chápat tyto texty, naučíte se PHP mnohem snadněji. Namísto spoléhání na příklady nebo na vystřihování/vkládání, by měl každý vědět, jak číst definice (prototypy) funkcí. Nuže, začněme:
Prerekvizita: Zakladní pochopení typů : Přestože PHP je slabě typový jazyk, je důležité mít základní znalosti o typech, protože mají důležitý význam.
Definice funkcí nám říkají, jaký typ hodnoty je vracen. Jako náš první příklad použijme definici pro funkci strlen():
strlen
(PHP 3, PHP 4, PHP 5)
strlen -- Vrací délku řetězce
Popis
int strlen ( string str )
Vrací délku řetězce.
Tabulka T.1. Vysvětlení definice funkce
| Část | Popis |
|---|---|
| strlen | Název funkce. |
| (PHP 3, PHP 4, PHP 5) | strlen() je k dispozici ve všech verzích PHP 3, PHP 4 a PHP 5 |
| int | Typ hodnoty, který tato funkce vrací, což je integer (např. délka řetězce je měřena číselně). |
| ( string str ) | První (a v tomto případě také jediný) parametr/argument pro tuto funkci je nazván str a je typu string. |
Výše uvedenou definici funkce může genericky přepsat:
návratový typ název funkce ( typ parametru název parametru )
Mnoho funkcí má více parametrů, jako např. in_array(). Prototy pak vypadá následovně:
bool in_array ( mixed needle, array haystack [, bool strict])
Co to znamená? in_array() vrací hodnotu typu boolean, TRUE při úspěchu (je-li parametr needle nalezen v haystack), nebo FALSE při selhání (needle se v haystack) nenajde). První parametr je nazván needle a může být mnoha různých typů, proto ho označujeme "mixed" (smíšený). Tento smíšený parametr needle (tj. "co hledáme") může být jak skalární hodnota (string, integer, nebo float), tak pole. Parametr haystack (pole, ve kterém hledáme) je druhý parametr. Třetí nepovinný parametr je nazván strict. Všechny nepovinné parametry se uvádějí v [ hranatých závorkách ]. Manuál uvádí, že parametr strict má výchozí (boolovskou) hodnotu FALSE. O tom, jak každá z funkcí pracuje, se píše na příslušných stránkách manuálu.
Existují také funkce se složitější informací o verzi PHP. Vezměme si jako příklad funkci html_entity_decode():
(PHP 4 >= 4.3.0, PHP 5)
To znamená, že tato funkce nebyla dostupná v PHP 3, a je dostupná jen ve vydaných verzích od PHP 4.3.0.
Jak číst definice funkcí (prototypy)
12-Jul-2005 05:50
09-Mar-2005 03:16
Another thing to watch for is the & in the argument list.
That generally means that the function is going to *CHANGE* the value you pass in, in some way, and you can't rely on it being the same as what you handed off to the function.
