Még mindig vannak dolgok amik bár logikusak mégis nem teljesen egyértelműek a számomra, ha PHP-ról van szó. Ránézel, kipróbálod, meglepődsz, végiggondolod és a fejedre csapsz, hogy “Logikus!!”


function e($a) {
  $a++;
}

function f(&$a) {
  $a++;
}

function d($var) {
  print_r($var);
  print '<br />';
}

$a = 1; d($a); // 1

e($a); d($a); // 1

call_user_func('e', $a); d($a); // 1

call_user_func('e', &amp;$a); d($a); // 2

$f = 'e';
$f($a); d($a); // 2

$f(&amp;$a); d($a); // 3


$a = 1; d($a); // 1

f($a); d($a); // 2

call_user_func('f', $a); d($a); // 2

call_user_func('f', &amp;$a); d($a); // 3

$f = 'f';
$f($a); d($a); // 4

Természetesen vannak olyan dolgok amik nem mennek, mert miért is mennének.

$f = 'echo';
$f('hello');

Ennek a kimenete az lesz, hogy nincs “echo()” függvény. Persze, hogy nincs, hisz az echo az egy nyelvi elem mint pl. a “for”. Logikus!