为什么我用了绝等比较(===)改变了变量值
莱登堡 2009-03-11 11:56:30
/** @method 防止id越界
* @name strip_and_clean
* @Param integer id
* array array
* @return integer id or 0
*/
function strip_and_clean($id,$array) {
if(is_numeric($id)){
if($id < 0 || $id > count($array)){
$id = 0;
}
}
return intval($id);
}
class ___(){
function _view($id=null){
$id = 1;
$id = $this->strip_and_clean($id,array(1=>1,2=>2,3=>3,4=>4,5=>5));
echo 'before===='.$id;
if ($id === 0) {
echo '<br>after===='.$id;
$this->Session->setFlash(__('不合法的XX!', true));
//exit('不合法的XX!');
}else{
//doing something~~~~~~~~~~~~~~~
}
}
}
为什么我在运行这个程序的时候,会输出:
before====1
after====0
呢?????
-----------------绝等比较(===)不是只比较变量的值和类型是否相等吗?
怎么在这里却赋值了呢???????????????