Na navigaci | Klávesové zkratky

Translate to English… Ins Deutsche übersetzen…

PHP hádanka II.

Dnes to bude spíš oddechovka. Otázka zní: co se stane s polem $a v bodech 1 a 2?

$a = array(1 => 'první');

// bod 1
$ref = & $a[2];

// bod 2
$ref = 'druhá';

Komentáře

  1. Havran http://www.fem.uniag.sk/havran/blog/ #1

    avatar

    Zaujimave :) V bode 1 pribudne do pola prvok 2 ⇒ '' a v bode 2 bude naplneny 2 ⇒ ‚druhá‘… Ked som sa nad tym zamyslal tak mi vychadzalo ze sa nic nestane lebo kluc dva v poli nie je ale vyzera to tak ze pri pouziti odkazu na neexistujuci prvok pola sa tento automaticky vytvori…

    před 12 lety | reagoval [2] Marťas [3] David Grudl
  2. Marťas #2

    avatar

    #1 Havrane, …a to se děje proto, protože PHP automaticky inicializuje proměnné při jejich prvním použití a vkládá do nich výchozí hodnoty – nic. Pokud je pak tato hodnota npř. tisknuta fcí echo a je tedy očekáván řetězec, je tato hodnota interpretována jako prázný řetězec. Kdyby bale byla použita při matematické operaci…tak by tam asi byla nula??? :)

    před 12 lety | reagoval [3] David Grudl
  3. David Grudl http://davidgrudl.com #3

    avatar

    #1 Havrane, #2 Marťas Velmi správně. Operace & inicializuje neexistující proměnné na hodnotu NULL. A jak se NULL převádí na jiné typy pěkně ukazuje tato tabulka.

    před 12 lety

Tento článek byl uzavřen. Už není možné k němu přidávat komentáře.