Hallo SELFPHP-Gemeinde, ich habe folgendes Verständnisproblem :
PHP-Code:
$conditions = array(1,2,3,4);
foreach ($conditions as $key => $value) {
switch ($key) {
case 'AND':
echo 'AND: '.$key.'<br />';
break;
case 'OR':
echo 'OR: '.$key.'<br />';
break;
default:
echo 'DEF: '.$key.'<br />';
}
}
/* AUSABE:
AND: 0
DEF: 1
DEF: 2
DEF: 3
*/
0 = 'AND' ? Wie kommt PHP denn darauf? Wird da was falsch gecastet? Habe die 0 noch andere bedeutungen als FALSE? Oder ist das ein Logik Problem ? if(FALSE) quasi?
Lösung:
PHP-Code:
foreach ($conditions as $key => $value) {
switch ((string) $key) {
case 'AND':
echo 'AND: '.$key.'<br />';
break;
case 'OR':
echo 'OR: '.$key.'<br />';
break;
default:
echo 'DEF: '.$key.'<br />';
}
}
/* AUSGABE:
DEF: 0
DEF: 1
DEF: 2
DEF: 3
*/
Danke für Zeit und Erklärung, ich habe im Handbuch leider keine Hinweise für dieses Verhalten finden können.