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 压缩文件夹的类代码
Nov 05 PHP
PHP Memcached + APC + 文件缓存封装实现代码
Mar 11 PHP
PHP 文件系统详解
Sep 13 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
php删除左端与右端空格的方法
Nov 29 PHP
php实现无限级分类
Dec 24 PHP
php字符串按照单词进行反转的方法
Mar 14 PHP
PHP合并discuz用户脚本的方法
Aug 04 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
浅谈Laravel中的一个后期静态绑定
Aug 11 PHP
PHP设计模式之建造者模式定义与用法简单示例
Aug 13 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中var_dump方法的使用详解
2013/06/24 PHP
PHP将MySQL的查询结果转换为数组并用where拼接的示例
2016/05/13 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
网上应用的一个不错common.js脚本
2007/08/08 Javascript
js 禁用浏览器的后退功能的简单方法
2008/12/10 Javascript
Javascript 检测键盘按键信息及键码值对应介绍
2013/01/03 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
完美兼容多浏览器的js判断图片路径代码汇总
2015/04/17 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
JS使用eval解析JSON的注意事项分析
2015/11/14 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
基于jQuery实现点击列表加载更多效果
2016/05/31 Javascript
Bootstrap栅格系统的使用和理解2
2016/12/14 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
angular8和ngrx8结合使用的步骤介绍
2019/12/01 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
Linux中安装Python的交互式解释器IPython的教程
2016/06/13 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
python中yaml配置文件模块的使用详解
2018/04/27 Python
python3写的简单本地文件上传服务器实例
2018/06/04 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
如何使用Python发送HTML格式的邮件
2020/02/11 Python
python对数组进行排序,并输出排序后对应的索引值方式
2020/02/28 Python
基于python爬取链家二手房信息代码示例
2020/10/21 Python
详解Python3.8+PyQt5+pyqt5-tools+Pycharm配置详细教程
2020/11/02 Python
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
大一军训感言
2014/01/09 职场文书
出国导师推荐信
2014/01/16 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
win10以太网连接不上怎么办?Win10连接以太网详细教程
2022/04/08 数码科技
python实现学员管理系统(面向对象版)
2022/06/05 Python