<?
$a='222asd333db';
$b=intval($a);
var_dump($a==$b);
?>
大家猜猜看var_dump能打印出什么值?这是为什么??
$a='222asd333db';
$b=intval($a);
var_dump($a==$b);
?>
大家猜猜看var_dump能打印出什么值?这是为什么??
解决方案 »
- PHP到底能不能控制一个文件夹的读取?
- php分页的问题,如何不重新查询
- 做php要对HTTP有什么样的认识呢?
- 大牛: mysql升级时字符串乱码的问题
- 请教一个关于php创建文件夹的问题
- http://coin.baidu.com/?change_pass 这个地址方式什么意思?
- 请教个查询的问题!
- 一个关于数组的问题
- session_start()怎么用?
- 原来很好的php留言簿文件却无法回复、无法留言、无法删除,…… 只能县是一个页面,是怎么回事??看来还是.gif的问题,我还是装回 php4.0.5吧。高手!何在!!!!!!!!!!!
- php 类文件应该如何互相加载
- 请教开发大型网上商城用何种方式较佳?
<?
$a='222asd333db';
echo '$a : ';
var_dump($a);
echo '<br>';echo '$b : ';
$b=intval($a);
var_dump($b);
echo '<br>';echo '$a==$b result: ';
var_dump($a==$b);
?>结论为:$a : string(11) "222asd333db"
$b : int(222)
$a==$b result: bool(true) 这是为什么???
$b = intval($a); //intval 只取串前面的数字,所以只能是 222
var_dump($a==$b); //比较时需要转换运算符两边为同一类型,所以为 truevar_dump($a===$b); 就不是了
$a='222222' 的时候
var_dump($a==intval($a)) 期待的的值是true; 若使用了===因为比较符前后的类型不一致而为false;$a='222222bb'的时候
var_dump($a==intval($a)) 期待的值是false;所以,这里不能使用===。我不明白的是即便是用==这个,为什么两个变量的长度和类型都不同,为什么会相等?????
你这个例子举的就不恰当了
php语法不严格 但是对于你编程而言 比较必然要基于一个前提
你到底是要比较字符串还是要比较数值?
你把字符串转化为数字类型后 又将这个数值类型与字符串比较 那你想得到什么???
你如果做java这类语言的话 会这样进行比较吗? 把string 与 int进行比较? 语法错误啊。
php语法弱而已 你自己写程序不能这么写吧