php编程基本功之isset与empty

简介:

最常用的两个函数,许多来应聘的有多年编程经验的老鸟都搞不清楚,见下面的例子:

 
 
  1. $arr[] = ''
  2. $arr[] = 0; 
  3. $arr[] = NULL; 
  4. $arr[] = null; 
  5. $arr[] = '0'
  6. $arr[] = ' '
  7.  
  8. echo "isset\tempty\n"
  9. echo "-------------------------------\n"
  10. foreach ($arr as $key => $val
  11.     echo isset($val) ? 'true''false'
  12.     echo "\t"
  13.     echo empty($val) ? 'true''false'
  14.     echo "\n"

输出:

 
 
  1. isset   empty 
  2. ------------------------------- 
  3. true    true 
  4. true    true 
  5. false   true 
  6. false   true 
  7. true    true 
  8. true    false 

当我们在表单输入时,经常遇到的一个问题,尤其是在做配置的时候,当填入0时,代表的是值是0,但不填值表示的可能是该值未定义。对于这种情况可以用下面的函数来做判断:

 
 
  1. /** 
  2.  * 判断值是否为空 
  3.  * 
  4.  * 在php中,0,null,array()和''用empty函数判断时都会返回true, 但实际上很多情况下0是不应当被认为是空 
  5.  * 的。比如在设置参数值时,0可能表示值真的是0,而空字符串则可能表示该值未设置 
  6.  * 
  7.  * @author ustb80 
  8.  * @param mixed $value 变量值 
  9.  * @param boolean $is_trim 是否要去掉前后空格 
  10.  * @return boolean 
  11.  */ 
  12. function isEmpty($value$is_trim = false) 
  13.     return $value === null || $value === array() || $value === '' || ($is_trim && is_scalar($value) && trim($value) === ''); 
  14.  
  15. echo isEmpty(0) ? '1':'0'
  16. echo isEmpty('0') ? '1':'0'

输出:

 
 
  1. 00

可以看到输入0已不再被认为是空了,不论其是字符还是数字。










本文转自 ustb80 51CTO博客,原文链接:http://blog.51cto.com/ustb80/1047128,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
API PHP
PHP空值合并运算符:?? 拯救你的 isset() 套娃!
PHP空值合并运算符:?? 拯救你的 isset() 套娃!
|
2月前
|
测试技术 PHP 开发者
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
|
10月前
|
存储 数据处理 PHP
深入浅出PHP编程之数组操作技巧
【10月更文挑战第30天】在PHP编程的海洋里,数组是一艘承载着数据结构的小船,掌握其操控之道,能让开发者在编码的旅程中乘风破浪。本文将带你领略数组的强大功能,从基础使用到高级应用,一步步揭开数组操作的神秘面纱。准备好你的航海装备,让我们启航吧!
102 4
|
5月前
|
前端开发 API PHP
PHP网编程:guzzle的鉴权和异步操作实践。
Guzzle是一个强大且灵活的HTTP客户端库,它可以方便地发送HTTP请求,并且其对异步请求和各类鉴权方式的支持使其成为处理HTTP请求的理想工具。你需要了解和掌握Guzzle的异步操作并发请求和鉴权方式,以便在实际的开发中得心应手地处理HTTP请求。
135 13
|
11月前
|
SQL 关系型数据库 MySQL
如何学习PHP编程?
【10月更文挑战第2天】如何学习PHP编程?
195 9
|
6月前
|
SQL 数据库连接 Linux
数据库编程:在PHP环境下使用SQL Server的方法。
看看你吧,就像一个调皮的小丑鱼在一片广阔的数据库海洋中游弋,一路上吞下大小数据如同海中的珍珠。不管有多少难关,只要记住这个流程,剩下的就只是探索未知的乐趣,沉浸在这个充满挑战的数据库海洋中。
127 16
|
5月前
|
Linux PHP iOS开发
PHP-Raylib 视 频 游 戏 编 程 库
php-raylib 是基于 PHP-FFI 绑定的 raylib-v5.5 游戏开发库,让 PHP 开发者轻松实现视频游戏编程。相比仅支持 4.+ 版本的原库,本项目适配最新 5.5 版本,并提供友好文档与示例代码(如窗口初始化、文本绘制等)。支持 PHP 7.4+ 和多平台(Windows、Linux、macOS),可通过 Composer 快速安装。欢迎贡献和完善![查看文档](http://raylib.kllxs.top/) 或访问仓库(GitHub/Gitee/Gitcode)。
PHP-Raylib 视 频 游 戏 编 程 库
|
11月前
|
存储 前端开发 PHP
PHP编程之探索与实践
【10月更文挑战第2天】在这篇文章中,我们将一起探索PHP编程的世界。PHP是一种广泛使用的开源服务器端脚本语言,它适用于Web开发。文章将详细介绍PHP的基本概念、语法和常用功能,并提供实用的代码示例。无论你是初学者还是有一定经验的开发者,都可以从中获得启发和帮助。让我们一起开启PHP编程的旅程吧!
|
11月前
|
安全 IDE 测试技术
PHP编程中的错误处理与调试技巧
【9月更文挑战第33天】在代码的世界里,错误是不可避免的。它们像是旅途中的绊脚石,挑战着开发者的耐心和智慧。本文将带你走进PHP的错误处理机制,教你如何优雅地面对和解决这些“意外的小惊喜”。从基本的语法错误到逻辑上的漏洞,我们将一起探索如何通过错误报告、自定义错误处理和调试技巧来提升代码质量。准备好,让我们开始这段寻找并消灭错误的旅程吧!
|
10月前
|
存储 Serverless PHP
PHP编程入门:从基础到实战
【10月更文挑战第35天】本文将带你走进PHP的世界,从最基本的语法开始,逐步深入到实际应用。我们将通过简单易懂的语言和实际代码示例,让你快速掌握PHP编程的基础知识。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到你需要的内容。让我们一起探索PHP的魅力吧!