• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

(php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时, ...

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

注意:php中变量可能是数字或非数字(对象、字符串等)时,应该注意:

由于php的弱类型,导致其变量判断很复杂,并且稍有不慎即会出错,因此php强大的字符处理函数库便成为phper的必修课。

例子(1):

$result = "asd";
if($result == 0){  //“$result == 0”使php将$result按数字处理并作出判断
     echo "0";
}
if($result == 1){  
     echo "1";
}
if($result){      //“$result”使php将$result按boolean处理并作出判断
     echo "true";
}
if(!$result){
     echo "false";
}

输出:0 true

if($result == 1)  使php强制将$result按数字处理并判断。

php将字符串强制转化为数字时遵循以下原则:字符串以数字开头时,直接转化为此数字;如果非数字开头,则转化为0。故此处,"$result == 1"为真。

如:

$test = "1 and 1 is 2";
echo $test + 1;
输出:2
$test = "you know that 1 and 1 is 2";
echo $test + 1;
输出:1

if($result)  使php强制将$result按boolean类型处理并判断。

php将字符串强制转化为boolean时遵循以下原则:字符串=“0”,或者字符串=“”,则false;否则,为true


例子(2):
$result = -1;
if($result == -1){
         echo "-1";
}
if($result == 0){
         echo "0";
}
if($result){
        echo "true";
}
if(!$result){
        echo "false";
}

输出:-1 true

if($result)  使php强制将$result按boolean类型处理并判断。

php将数字强制转化为boolean时遵循以下原则:数字=0,则false;否则,为true。

结论:如果$result 可能是 字符串又可能是数字时,应该注意判断方法和顺序。

结合使用php变量处理函数is_numeric()、is_string()等。

参考例子:

if(!is_numeric($result) && $result){
	echo "字符串";
}
if(is_numeric($result) && $result == -1){
	echo -1;
}
if(is_numeric($result) && $result == 0){
	echo 0;
}


php变量处理函数库官网:http://cn2.php.net/manual/zh/book.var.php





鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
CentOS环境下yum安装LAMP(Linux+Apache+Mysql+php)发布时间:2022-07-10
下一篇:
App接口设计之token的php实现发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap