Chris: Interessantes Ergebnis bei falschem Operator

Beitrag lesen

Hallo Forum,

$where = array();
  $where .= "ger".intval($key)." = 1";    ## hab ich noch nicht ausprobiert, aber hier
                                            ## würde ich selbst von PHP einen Fehler erwarten
    $where[] = "ger".intval($key)." = 1";   ## halte ich für besser

aber ich habe es ben mal ausprobiert.

<?php
  error_reporting(E_ALL);

$where = array();

$where .= 'ergebnis_1';
  $where .= 'ergebnis_2';

echo "<h1>$where</h1>\n<pre>\n";
  print_r($where);
  echo "\nTyp ist ".gettype($where);
  echo "</pre>\n";

?>

Ergibt ein witziges aber gefährliches Ergebnis:

$where
  Arrayergebnis_1ergebnis_2
  Typ ist string

Notice gab es nicht. Das leere Array wurde einfach in einen String umgewandelt und der Typbezeichner gleich als Vorbelegung für den text benutzt *gg*

Das war also tatsächlich falsch.

LG
Chris