php通过各种函数判断0和空


Posted in PHP onJuly 04, 2020

函数对0的判断

$cast_id = 0;
  var_dump(strlen($cast_id)); //1
  var_dump(empty($cast_id)); // true
  var_dump(isset($cast_id)); //true
  var_dump(is_null($cast_id));//false

对空的判断

$cast_id = "";
  var_dump(strlen($cast_id)); //0
  var_dump(empty($cast_id)); // true
  var_dump(isset($cast_id)); //true
  var_dump(is_null($cast_id));//false

补充:下面给大家介绍下php 语法里0不等于null为空的解决办法

今天遇到这样一个问题是这样的: php 语句里,我想判断一个值大于等于0. 我是使用 ($value !=null && $value >=0), 返回的结果为空,这点真的好奇怪。

实验总结:

php 语句如下:

$index=0;
echo "A: ".$index."<br>"; //0
echo "B: ".($index !=null && $index >=0)."<br>";//
echo "C: ".(isset($index) && $index >=0)."<br>";//1
echo "D: ".(0 !=null)."<br>";//

结果:

A: 0
B:
C: 1
 D: 

要判断一个数值[该数组可能为空等]大于等于0, 可用另外一个方法:  is_numeric($index) === true

$index=array_search($url, $contentOtherStr, true);
 //值大于等于0, 即存在
if(is_numeric($index) === true)
 {
echo "$url existed. "."<br>";
 }else{
echo "$url Add. "."<br>";
array_push($contentOtherStr, $url);
 }

这个很奇怪,终于解决了。Mark 一下。

 总结:php的语句稍有些怪异,从其它编程语言转来的同学们一定多加小心谨慎,注意惯性思维及语法差异点啊,避免陷入坑中。

其它资料:

原因是在PHP中变量是以C语言的结构体来存储的,空字符串和NULL,false都是以值为0存储的,其中这个结构体有个zend_uchar type;这样的成员变量,他是用来保存变量的类型的,而空字符串的类型是string,NULL的类型是NULL,false是boolean。

这一点可以用echo gettype('');echo gettype(NULL);来打印看看!而===运算符是不单比较值,还有比较类型的,所以第三个为false!

另外再说下,php中

=     一个等号是赋值
==    两个等号是判断相等且只比较值,不比较类型
===   三个等号是判断值和类型都相等
!=    不等于符号,只比较值,不管类型
!==   不全等符号,比较值和类型

所以 空字符串(''),false, NULL 和 0是值相等而类型不一样

注意:

NULL是一种特殊的类型.

两种情况下为NULL

 1. $var = NULL;
 2. $var;
3.""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE。

PHP中区分0和空

function test()
{
  $a = 0;
  $b = '';
  $c = null;

  // 区分 0、''、null

  // 1、方法一
  if ($a !== '') {
    echo '0和null';
  } else {
    echo '空字符串';
  }

  // 2、方法二
  if ($a !== null) {
    echo '0和空字符串';
  } else {
    echo 'null';
  }

  // 3、方法三
  if (strlen($a) > 0) {
    echo '0';
  } else {
    echo '空字符串和null';
  }

  // 以上三种方法都只能把其中一个和另外两个区分出来,如果需要3个单独区分,需要结合使用
}

到此这篇关于php通过各种函数判断0和空的文章就介绍到这了,更多相关php 函数判断0和空内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP脚本的10个技巧(6)
Oct 09 PHP
PHP Document 代码注释规范
Apr 13 PHP
PHP文章按日期(月日)SQL归档语句
Nov 29 PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 PHP
PHP判断是否为空的几个函数对比
Apr 21 PHP
php判断表是否存在的方法
Jun 18 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP安全下载文件的方法
Apr 07 PHP
php 指定范围内多个随机数代码实例
Jul 18 PHP
php使用GD2绘制几何图形示例
Feb 15 PHP
php中的异常和错误浅析
May 03 PHP
PHP实现驼峰样式字符串(首字母大写)转换成下划线样式字符串的方法示例
Aug 10 PHP
PHP手机短信验证码实现流程详解
May 17 #PHP
PHP实现多图上传和单图上传功能
May 17 #PHP
php实现姓名根据首字母排序的类与方法(实例代码)
May 16 #PHP
PHP多维数组指定多字段排序的示例代码
May 16 #PHP
php strftime函数获取日期时间(switch用法)
May 16 #PHP
Phpstorm+Xdebug断点调试PHP的方法
May 14 #PHP
Laravel 集成 Geetest验证码的方法
May 14 #PHP
You might like
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
php面向对象全攻略 (五) 封装性
2009/09/30 PHP
PHP 文件上传全攻略
2010/04/28 PHP
PHP将两个关联数组合并函数提高函数效率
2014/03/18 PHP
PHP入门教程之使用Mysqli操作数据库的方法(连接,查询,事务回滚等)
2016/09/11 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
2017/06/06 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
javascript下操作css的float属性的特殊写法
2007/08/22 Javascript
说说掌握JavaScript语言的思想前提想学习js的朋友可以看看
2009/04/01 Javascript
JQuery替换DOM节点的方法
2015/06/11 Javascript
第六章之辅组类与响应式工具
2016/04/25 Javascript
AngularJS表达式讲解及示例代码
2016/08/16 Javascript
vue组件实例解析
2017/01/10 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
深入理解 JavaScript 中的 JSON
2017/04/06 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
微信小程序自定义组件封装及父子间组件传值的方法
2018/08/28 Javascript
浅谈VueJS SSR 后端绘制内存泄漏的相关解决经验
2018/12/20 Javascript
微信小程序 行的删除和增加操作实现详解
2019/09/29 Javascript
微信小程序关键字变色实现代码实例
2019/12/13 Javascript
Angular进行简单单元测试的实现方法实例
2020/08/16 Javascript
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python MySQL数据库连接池组件pymysqlpool详解
2017/07/07 Python
Python读取Json字典写入Excel表格的方法
2018/01/03 Python
Python pandas实现excel工作表合并功能详解
2019/08/29 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
canvas之自定义头像功能实现代码示例
2017/09/29 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
2014银行领导班子群众路线对照检查材料思想汇报
2014/09/17 职场文书
行政人事主管岗位职责
2015/04/11 职场文书
单位收入证明范本
2015/06/18 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
Python Pandas读取Excel日期数据的异常处理方法
2022/02/28 Python