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 相关文章推荐
Access数据库导入Mysql的方法之一
Oct 09 PHP
php&amp;java(一)
Oct 09 PHP
PHP备份/还原MySQL数据库的代码
Jan 06 PHP
php共享内存段示例分享
Jan 20 PHP
php查询mssql出现乱码的解决方法
Dec 29 PHP
PHP文件缓存类示例分享
Jan 30 PHP
php支付宝手机网页支付类实例
Mar 04 PHP
调用WordPress函数统计文章访问量及PHP原生计数器的实现
Mar 21 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
PHP钩子实现方法解析
May 21 PHP
thinkphp框架类库扩展操作示例
Nov 26 PHP
php经典趣味算法实例代码
Jan 21 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
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
Laravel 微信小程序后端搭建步骤详解
2019/11/26 PHP
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
详细谈谈AngularJS的子级作用域问题
2016/09/05 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
基于JavaScript实现图片剪切效果
2017/03/07 Javascript
JS二叉树的简单实现方法示例
2017/04/05 Javascript
基于jQuery实现无缝轮播与左右点击效果
2018/05/13 jQuery
详解关于微信setData回调函数中的坑
2019/02/18 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
[15:20]DOTA2-DPC中国联赛 正赛 Elephant vs Aster 选手采访
2021/03/11 DOTA
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python 读取串口数据,动态绘图的示例
2019/07/02 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
VSCode中自动为Python文件添加头部注释
2019/11/14 Python
django 中使用DateTime常用的时间查询方式
2019/12/03 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
2020/04/25 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
西海岸男士和男童服装:Johnnie-O
2018/03/15 全球购物
allbeauty美国:英国在线美容店
2019/03/11 全球购物
新西兰最大的天然保健及护肤品网站:HealthPost(直邮中国)
2021/02/13 全球购物
Myprotein中国网站:欧洲畅销运动营养品牌
2021/02/11 全球购物
检察官就职演讲稿
2014/01/13 职场文书
集团公司党的群众路线教育实践活动工作总结
2014/03/03 职场文书
预防煤气中毒方案
2014/06/16 职场文书
英语教研活动总结
2014/07/02 职场文书
小学捐书活动总结
2014/07/05 职场文书
售后前台接待岗位职责
2015/04/03 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书
python 爬取华为应用市场评论
2021/05/29 Python
python 爬取吉首大学网站成绩单
2021/06/02 Python
详解Python自动化之文件自动化处理
2021/06/21 Python
centos7安装mysql5.7经验记录
2022/05/02 Servers