intval函數有個特性:
二
PHP_FUNCTION(intval)
{
zval **num
int base;
switch (ZEND_NUM_ARGS()) {
case
if (zend_get_parameters_ex(
WRONG_PARAM_COUNT;
}
base =
break;
case
if (zend_get_parameters_ex(
WRONG_PARAM_COUNT;
}
convert_to_long_ex(arg_base);
base = Z_LVAL_PP(arg_base);
break;
default:
WRONG_PARAM_COUNT;
}
RETVAL_ZVAL(*num
convert_to_long_base(return_value
}
Zend/zend_operators
……
case IS_STRING:
strval = Z_STRVAL_P(op);
Z_LVAL_P(op) = strtol(strval
STR_FREE(strval);
break;
當intval函數接受到字符串型參數是調用convert_to_long_base()處理
函數原型如下
這個函數會將參數nptr字符串根據參數base來轉換成長整型數
流程為
strtol()會掃描參數nptr字符串
那麼當intval用在if等的判斷裡面
三
//intval
$var=
if (intval($var))
echo
echo
echo
$var
if (intval($var
echo
echo
四
From:http://tw.wingwit.com/Article/program/PHP/201311/20990.html