<?php $zero = 0; foreach ($arr as $value) { if ($value == $zero) { } else { }; }; ?>
Wbrew moim oczekiwaniom skrypt wyswietlił:
Cytat
$zero jest typu int(0)
int(0)
0 == 0 true
string(1) "0"
0 == 0 true
int(1)
1 == 0 false
string(1) "1"
1 == 0 false
bool(true)
1 == 0 false
bool(false)
== 0 true
string(0) ""
== 0 true
string(5) "alpha"
alpha == 0 true // false?
string(15) "alphanumeric123"
alphanumeric123 == 0 true // false?
int(0)
0 == 0 true
string(1) "0"
0 == 0 true
int(1)
1 == 0 false
string(1) "1"
1 == 0 false
bool(true)
1 == 0 false
bool(false)
== 0 true
string(0) ""
== 0 true
string(5) "alpha"
alpha == 0 true // false?
string(15) "alphanumeric123"
alphanumeric123 == 0 true // false?
Czy mi się wydaje, ale chyba coś nie tak z ostatnimi dwoma wynikami porównania?
Pracuję na php 5.1.2, Win XP Sp2
P.S. Gdy porównuję typami (===) zjawisko znika.