PHP – 51. díl – přechod na PHP 5

Jak už jsem naznačil v předchozím díle, nová verze PHP 5 se rychle šíří a jen jenom otázkou času kdy zcela opanuje pole. Proto už nyní, v čase kdy převažuje PHP 4, je dobré psát skripty tak, aby přechod na PHP 5 byl bezproblémový.

Dnešní díl vám napoví, jak se máte při psaní PHP skriptů chovat, abyste u PHP 5 neměli žádné problémy.

Předem je nutné říci, že nestačí zkusit spustit vaše skripty psané pro PHP 4 pod pětkovou verzí. A pokud náhodou vaše skripty PHP 5 pojedou, ještě to neznamená, že je všechno v pořádku. Některé změny v PHP 5 totiž přeci jen vedou ke vzniku těžko odhalitelných chyb, a tak je nutné na PHP 5 myslet už při psaní skriptů.

Takže v dnešním díle najdete návod jak psát svoje skripty pro PHP 4, abyste je bez problémů rozchodili pod PHP 5 a nemuseli je přepisovat.

Zpětná kompatibilita

Některé problémy při přechodu na PHP 5 mohou být zaviněny tím, že stejná funkce se chová jinak u PHP 4 a jinak u PHP 5. Těchto problémů ale není tolik, kolik by se zdálo. V každém případě je dobré tyto případy mít na paměti a dávat si na ně pozor již při psaní skriptů.

V zásadě jsou všechny problémy, které mohou být zaviněny nedokonalou zpětnou kompatibilitou u PHP 5 popsány dopodrobna v manuálu. Já zde uvedu v podstatě jen krátký výtah.

Hlavní změny v práci se budou týkat několika funkcí, které se chovají jinak u PHP 4 a jinak u PHP 5. Pokud tedy používáte následující funkce, tak vězte, že v případě PHP 5 se budou chovat trochu jinak:

  • array_merge
  • get_class
  • get_class_method
  • get_parent_class
  • ip2long
  • strripos
  • strrpos

Výše zmíněné funkce se používají celkem zřídka, takže v případě, že některou z nich potřebujete používat, nahlédněte do manuálu abyste zjistili, jaké jsou změny.

Nová klíčová slova

Vzhledem k rozšíření PHP 5 zejména v oblasti objektů se objevila nová klíčová slova, které PHP 5 používá. Proto byste neměli svým funkcím, metodám a objektům dávat žádný z těchto názvů:

  • abstract
  • catch
  • clone
  • exception
  • final
  • interface
  • implements
  • php_user_filter
  • private
  • protected
  • public
  • throw
  • try

Všechna výše uvedená klíčová slova mají v PHP 5 speciální význam, a pokud byste si tak pojmenovali třeba funkci, museli byste jí v PHP 5 nakonec stejně přejmenovat.

Změny v objektech – názvy metod

Pokud píšete objektově v PHP 4, měli byste si dávat pozor na jména metod. Asi nejlepší je nenazývat metody názvy, které začínají dvěma podtržítky. Protože všechny speciální metody, které existují v PHP 5 začínají dvěma podtržítky a dá se očekávat, že stejná tendence pojmenování speciálních metod přijde i v budoucnu.

V každém případě nepoužívejte pro názvy metod objektů následující názvy:

  • __autoload
  • __call
  • __clone
  • __construct
  • __destruct
  • __get
  • __set
  • __toString

Výše zmíněné názvy metod mají v PHP 5 speciální význam.

Změny v objektech - klonování a spol.

Nyní se dostávám ke změně, která souvisí s kopírováním objektů. Pokud v PHP verze 4 provedete přiřazení objektů nějak takto:

$a = $b;

Pak v případě objektů dojde k vytvoření kopie. Dojde tedy ke zkopírování a mám objekty dva – původní a zkopírovaný. Každý z těchto objektů je nezávislý a změny, které udělám v objektu $a se nedotknou objektu $b a naopak.

Pokud provedete stejné přiřazení v případě PHP verze 5, nedojde ke zkopírování objektů, ale pouze k předání reference (odkazu). Výsledek je takový, že objekty $a a $b nejsou dva, ale pouze jeden. Jinak řečeno, objekt lze nyní ovládat přes dvě proměnné, a to $a a $b.

Pokud chcete psát v PHP 4 tak, aby to prošlo stejně později v PHP 5, používejte takováto přiřazení:

$a = & $b;

Výše uvedené přiřazení znamená totéž v obou verzích PHP, a to předání reference (odkazu). Ve výsledku tedy je stále jeden objekt, který je možné ovládat přes dvě proměnné.

Diskuze (16) Další článek: Oživeno: Vyšla finální verze Skype pro Mac OS X i Linux, v testování je verze pro Windows s funkcí záznamníku

Témata článku: Software, Programování, PHP, Díl, Stejný problém, Pozor, Přechod, Speciální díl, Reference, Klíčová funkce, Zkopírovaná funkce, Catch, Speciální verze, Stejná funkce, Stejná metoda


Určitě si přečtěte

Jak vlastně funguje Flightradar24: Posloucháme letadla nad celým Českem

Jak vlastně funguje Flightradar24: Posloucháme letadla nad celým Českem

** Flightradar24 zobrazuje polohu letadel v reálném čase ** Když mu pomůžete sbírat data, dostanete nejvyšší paušál zdarma ** Jak to vlastně celé funguje a co je k tomu potřeba?

Jakub Čížek | 30

Windy je laboratoř na počasí: 12 tipů, jak se ve službě vyznat a využít ji naplno

Windy je laboratoř na počasí: 12 tipů, jak se ve službě vyznat a využít ji naplno

** Předpověď počasí Windy nabízí nepřebernou škálu funkcí ** Zorientovat se v nich nemusí být vždy snadné ** Proto přinášíme 12 užitečných tipů a triků

Karel Kilián | 9

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

Velká datová loupež. Proč mají disky nižší kapacitu, než uvádějí?

** Na disk nikdy neuložíte tolik dat, jak tvrdí výrobce ** Ajťáci si vymysleli vlastní jednotky jako mebibajt ** Zmatky vznikají i kvůli různým výjimkám

Lukáš Václavík | 104

Apple má šanci definitivně se uzamknout. macOS byl na jeho poměry až příliš otevřený

Apple má šanci definitivně se uzamknout. macOS byl na jeho poměry až příliš otevřený

** Apple, vývojáře i uživatele rozhodně nečekají dva roky prázdnin ** macOS se může uzavřít podobně jako iOS a iPadOS ** Přechod na Arm znamená stopku pro hackintoshe

Lukáš Václavík | 102

Jak se žije s telefonem bez Googlu: Čerstvé zkušenosti s telefony Honor a Huawei

Jak se žije s telefonem bez Googlu: Čerstvé zkušenosti s telefony Honor a Huawei

** Honor u nás přichází s prvním telefonem bez Google Mobile Services ** Současný stav je lepší než na začátku, ideální ale není ** Zkusili jsme i hack s ručním přidáním služeb Googlu

Tomáš Holčík | 148

Deset kotev, které i v roce 2020 táhnou Android ke dnu

Deset kotev, které i v roce 2020 táhnou Android ke dnu

** Android existuje skoro 12 let a za tu dobu v mnoha směrech dospěl ** Dnes běží na sedmi z deseti telefonů, ale čemu za to vděčí? ** Našli jsme 10 kotev, které táhnou tento operační systém ke dnu

Karel Kilián | 165


Aktuální číslo časopisu Computer

Megatest SSD s kapacitou 1 TB

Srovnávací test robotických vysavačů

Vybíráme nejlepší telefony na trhu

Jak zlepšit zvuk televize