Regina Schaukrug: Umstellung auf php 7.1 :: Umstieg auf mysqli verpasst?

Beitrag lesen

Ich denke, Du hast ganz einfach was verpasst… [...]

oder Du etwas übersehen?

while ($treffer= mysqli_fetch_object($result))

Ja. Du hast recht. Deshalb habe ich den Beitrag zwischenzeitlich geändert.

Einer (belegten) String-Variable ein Array zuzuweisen hat aber schon in PHP 5.x nicht funktioniert.

Weist Du was? Das ist mir noch nie aufgefallen. Wahrscheinlich arbeite ich einfach zu sauber. Ich schau mir das jetzt mal an.

Aha. Es kommt auf das Wie an:

<?php
error_reporting(E_ALL);

$t1='bar';
$t2='bar';
$t3='bar';
$t4='bar';
$t5='bar';

function getArr() {
    return array('foo', 'bar');
}

$t1 = ['foo', 'bar'];
$t2 = getArr();
$t3 = json_decode(json_encode($t2));
$t4[0] = 'foo';
$t4[1] = 'bar';
$t5 = array();
$t5[0] = 'foo';
$t5[1] = 'bar';

echo "Fertig:\nt1:";
print_r($t1);echo "\nt2:";
print_r($t2);echo "\nt3:";
print_r($t3);echo "\nt4:";
print_r($t4);echo "\nt5:";
print_r($t5);echo "\n";

Sowohl in PHP als auch in hhvm keine Notiz - obwohl eigentlich eingeschaltet! Aber das hier: (Fehlerhaftes Ergebnis ist bei t4)

$ php /tmp/t.php 
Fertig:
t1:Array
(
    [0] => foo
    [1] => bar
)

t2:Array
(
    [0] => foo
    [1] => bar
)

t3:Array
(
    [0] => foo
    [1] => bar
)

t4:fbr
t5:Array
(
    [0] => foo
    [1] => bar
)

Man kann also schon einer Variable, die einen String enthält, einen Array zuweisen. Nur eben nicht direkt Elemente eines Array adressieren, wenn der vermeintliche Array ein String ist.