PHP5.5和之前的版本empty函数的不同之处
关于PHP中empty函数在不同版本间的差异
在PHP开发中,empty函数是我们经常使用的工具之一。近期我发现了一个关于此函数的令人困惑的问题。我在本地开发时使用的代码在服务器上运行时出现了错误。代码如下:
```bash
if(strlen($passwd) < 6 || empty($preg_replace("/\d/", "", $passwd))) {
//do something
}
```
这段代码的主要意图是检查密码是否少于6位并且是否完全不含数字。在服务器上运行时,我遇到了一个PHP致命错误,指出无法在写入上下文中使用函数返回值。
经过一番调查,我发现这个问题是由于PHP版本差异导致的。我的本地开发环境使用的是PHP 5.5,而服务器上的版本是PHP 5.3。在PHP 5.5之前的版本中,empty()函数仅支持变量作为参数,任何非变量的东西都会导致错误。换句话说,以下代码在旧版本中是无法工作的:empty(trim($name))。相反,你应该使用trim($name) == false来进行检查。
对于PHP 5.5及更高版本,empty函数的使用场景有所变化。在这个版本中,empty()函数可以应用于任何值,而不仅仅限于变量。它可以接受常量、函数返回值等等。在旧版本中,如果你尝试这样做,将会收到一个错误。
当你在开发过程中使用empty函数时,一定要注意你的服务器上的PHP版本。如果你的本地开发环境使用的PHP版本高于你的服务器版本,尤其需要关注这个问题。确保你的代码在目标服务器上能够正常运行,以避免可能出现的问题。请记住,当你使用函数返回值作为empty函数的参数时,只在PHP 5.5及更高版本中是可行的。在旧版本中,你应该直接比较函数返回值与false。这对于确保你的代码在各种环境下都能正常运行非常重要。
编程语言
- PHP5.5和之前的版本empty函数的不同之处
- JS动态加载当前时间的方法
- layui 动态设置checbox 选中状态的例子
- ASPJPEG学习手记
- 基于JS判断iframe是否加载成功的方法(多种浏览器
- asp.net检查服务器上目录或文件是否存在的方法
- php strrpos()与strripos()函数
- PHP实现json_decode不转义中文的方法
- ubuntu下编译安装xcache for php5.3 的具体操作步骤
- javascript填充默认头像方法
- PHP函数nl2br()与自定义函数nl2p()换行用法分析
- ASP模拟POST请求异步提交数据的方法
- 支持加号空格的查询
- jQuery插件passwordStrength密码强度指标详解
- jquery使用on绑定a标签无效 只能用live解决
- 调试php程序的简单步骤