Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 09-02-2016, 14:47
berni15
 Registrierter Benutzer
Links : Onlinestatus : berni15 ist offline
Registriert seit: Feb 2016
Beiträge: 9
berni15 befindet sich auf einem aufstrebenden Ast
Standard mysqli und output buffering

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:

Code:
db outside: set
test outside: set
db inside: unset
test inside: set
Und hier der Code:

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;
}

?>
Hat jemand eine Idee, woran das liegt? Oder ist es ein Bug in mysqli?

PS: Ich verwende PHP-Version 5.6.17-0+deb8u1

Geändert von berni15 (09-02-2016 um 14:49 Uhr) Grund: PHP-Version hinzugefügt
Mit Zitat antworten