In nachfolgendem Skript ist die globale Variable $db innerhalb der ob-routine "layout" nicht definiert, obwohl sie das meiner Meinung nach sein müsste. Mit anderen Variablen funktioniert es, und auch, wenn ich mysqli_connect durch mysql_connect ersetze. Muss also irgendwie an mysqli liegen, aber ich konnte dazu im Netz nichts finden.
Ausgabe:
Und hier der Code:
Hat jemand eine Idee, woran das liegt? Oder ist es ein Bug in mysqli?
PS: Ich verwende PHP-Version 5.6.17-0+deb8u1
Ausgabe:
Code:
db outside: set test outside: set db inside: unset test inside: set
PHP-Code:
<?php
ob_start("layout");
$db = mysqli_connect('localhost', 'xxx', 'xxx', 'xxx');
$test = '123';
error_log('db outside: '.(isset($db)?"set":"unset"));
error_log('test outside: '.(isset($test)?"set":"unset"));
function layout($s)
{
global $db,$test;
error_log('db inside: '.(isset($db)?"set":"unset"));
error_log('test inside: '.(isset($test)?"set":"unset"));
return $s;
}
?>
PS: Ich verwende PHP-Version 5.6.17-0+deb8u1
Kommentar