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 相关文章推荐
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
Jan 06 PHP
php比较多维数组中值的大小排序实现代码
Sep 08 PHP
使用dump函数,给php加断点测试
Jun 25 PHP
ThinkPHP实现动态包含文件的方法
Nov 29 PHP
Laravel 5框架学习之向视图传送数据
Apr 08 PHP
php项目开发中用到的快速排序算法分析
Jun 25 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
PHP实现登陆并抓取微信列表中最新一组微信消息的方法
Jul 10 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
PHP 布尔值的自增与自减的实现方法
May 03 PHP
Laravel 解决composer相关操作提示php相关异常的问题
Oct 23 PHP
TP5多入口设置实例讲解
Dec 15 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去除重复字的实现代码
2011/09/16 PHP
php标签云的实现代码
2012/10/10 PHP
php中mt_rand()随机数函数用法
2014/11/24 PHP
php中错误处理操作实例分析
2019/08/23 PHP
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
老生常谈遮罩层 滚动条的问题
2016/04/29 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
理解javascript中的闭包
2017/01/11 Javascript
bootstrap按钮插件(Button)使用方法解析
2017/01/13 Javascript
vue图片加载与显示默认图片实例代码
2017/03/16 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
jQuery鼠标滑过横向时间轴样式(代码详解)
2019/11/01 jQuery
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
python 递归遍历文件夹,并打印满足条件的文件路径实例
2017/08/30 Python
Python协程的用法和例子详解
2017/09/09 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
Python程序运行原理图文解析
2018/02/10 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
Python使用LDAP做用户认证的方法
2019/06/20 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
浅析python内置模块collections
2019/11/15 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
2020/11/11 Python
HTML5中视频音频的使用详解
2017/07/07 HTML / CSS
把富文本的回车转为br标签
2019/08/09 HTML / CSS
给物业的表扬信
2014/01/21 职场文书
补充协议书
2015/01/28 职场文书
学困生转化工作总结
2015/08/13 职场文书
标准发言稿结尾
2019/07/18 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python
德劲DE1102数字调谐收音机机评
2022/04/07 无线电
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android