(php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时,应该如何去判断
来源:互联网 发布:mysql truncate 锁表 编辑:程序博客网 时间:2024/03/29 09:43
注意: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
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
- (php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时,应该如何去判断
- 如何判断字符串包含的是数字
- JSON是一种数据交换格式(JSON对象/JSON字符串/JSON数字/JSON数组等) -------- JSON对象是JS引擎的内置对象
- 判断字符串的数字类型
- 如何判断字符是数字、字母或其它类型的符号
- 如何判断string字符串(或char字符),是否是数字
- 16-判断输入的是否是数字(字符串处理)
- JS 中如何判断-字符串类型的数字
- JS 中如何判断字符串类型的数字
- JS 中如何判断字符串类型的数字
- JS 中如何判断字符串类型的数字
- 如何判断一个变量是否是数字而不是字符串
- 判断文本框中输入的(禁止客户输入非字母或非数字)
- php如何判断某变量的类型
- 判断数字/字符串/实例的类型
- 判断给定的字符串是否是数字
- Java判断字符串是字符或数字
- 判断输入字符串是否是数字类型
- JS星级评分系统
- wireshark中radius协议相关过滤规则
- 调用printstars函数
- 白鹿原的“那些事”
- 第一次找工作总结
- (php的弱类型导致的小问题)某变量可能是数字或非数字(对象、字符串、json等)时,应该如何去判断
- study_2012-11
- WinCE中sources文件中targetlibs与sourcelibs区别
- 感悟_2012-11-18
- 第十二周-四数的的最大公约数5
- Android动态修改 TabHost 标签的图标和标题
- sdl_app:emulator.exe - 应用程序错误
- 企业百度竞价工作岗位细致分配
- C#中协变抗变之我见