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 相关文章推荐
example2.php
Oct 09 PHP
PHP中路径问题的解决方案
Oct 09 PHP
mayfish 数据入库验证代码
Apr 30 PHP
php中3种方法统计字符串中每种字符的个数并排序
Aug 27 PHP
PHP输入流php://input介绍
Sep 18 PHP
php多文件上传实现代码
Feb 20 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
PHP框架自动加载类文件原理详解
Jun 06 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
aec加密 php_php aes加密解密类(兼容php5、php7)
Mar 14 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和js交互一例-PHP教程,PHP应用
2007/01/03 PHP
让你成为更出色的PHP开发者的10个技巧
2011/02/25 PHP
PHP二维数组的去重问题解析
2011/07/17 PHP
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
PHP实现支持SSL连接的SMTP邮件发送类
2015/03/05 PHP
php生成Android客户端扫描可登录的二维码
2016/05/13 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
JS解决url传值出现中文乱码的另类办法
2013/04/08 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
JS库之Particles.js中文开发手册及参数详解
2017/09/13 Javascript
angularjs路由传值$routeParams详解
2020/09/05 Javascript
基于webpack 实用配置方法总结
2017/09/28 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
基于bootstrap写的一点localStorage本地储存
2017/11/21 Javascript
在Vue项目中使用d3.js的实例代码
2018/05/01 Javascript
vue模仿网易云音乐的单页面应用
2019/04/24 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
Python操作串口的方法
2015/06/17 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
python装饰器代替set get方法实例
2019/12/19 Python
详解python 降级到3.6终极解决方案
2020/02/06 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
使用HTML5做的导航条详细步骤
2020/10/19 HTML / CSS
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
SQL里面IN比较快还是EXISTS比较快
2012/07/19 面试题
初一生物教学反思
2014/01/18 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
2015年教师节演讲稿范文
2015/03/19 职场文书
高中生军训感言
2015/08/01 职场文书
有关保护环境的宣传标语100条
2019/08/07 职场文书
Vue + iView实现Excel上传功能的完整代码
2021/06/22 Vue.js