php开发时容易忘记的一些技术细节
文章分享:PHP开发中的两个易被忽视的小细节——empty和in_array
在进行PHP开发时,我们可能会忽略一些看似微小的细节,这些细节有时可能会导致严重的后果,如网站被注入或崩溃等。今天,我想和大家分享两个常见的PHP陷阱:empty和in_array。
陷阱一:empty()
让我们看一个例子:
```php
$arr1 = [1, 2, 3];
$arr2 = [3, 4];
if(empty(array_diff($arr1, $arr2))) {
echo 'empty';
} else {
echo 'not empty';
}
```
在PHP 5.5之前,empty()只支持变量。上述代码会导致错误。自从PHP 5.5开始,empty()已经支持这种写法了。但为了避免出现问题,我们应该注意在使用empty()时,确保它只用于变量。如果遇到需要处理的情况,比如trim($name),应该使用trim($name) == false进行判断。
陷阱二:in_array()
接下来是in_array()函数。当我们使用in_array()判断数组里是否存在某个值时,需要注意一些“怪异”的行为。例如:
```php
$post_dirty_id = '1092 ORDER BY 1';
$safe_arr = [
987 => '狼蚁网络推广',
1092 => '汤姆',
1256 => '奥立升'
];
if(in_array($post_dirty_id, array_keys($safe_arr))) {
echo 'find me';
} else {
echo 'do not find me';
}
```
上述代码的输出结果是"find me",但明显这个结果是不正确的。这是因为in_array()函数在某些情况下会有意想不到的行为。为了避免这种情况,我们可以采用其他方式进行判断,例如使用isset()函数:
```php
if(isset($safe_arr[$post_dirty_id])) {
echo 'find me';
} else {
echo 'do not find me';
}
```
这样,我们就可以得到正确的结果了。虽然empty和in_array是PHP中常见的函数,但我们在使用时需要注意它们的细节和行为,避免因为误用而导致的问题。希望这篇文章能给大家带来帮助!
编程语言
- php开发时容易忘记的一些技术细节
- 如何查询日期类型的数据?
- 关于JavaScript跨域问题及实时刷新解决方案
- vue 中滚动条始终定位在底部的方法
- 浏览器预览PHP文件时顶部出现空白影响布局分析
- PHP检测链接是否存在的代码实例分享
- Vue.js中的extend绑定节点并显示的方法
- Repeater对数据进行格式化处理
- mysql5.7.22 下载过程图解
- PHP中使用FFMPEG获取视频缩略图和视频总时长实例
- smarty实现多级分类的方法
- jQuery简单实现禁用右键菜单
- asp 多关键词搜索的简单实现方法
- MacBook下python3.7安装教程
- asp.net中关于dropdwonlist无法获得值问题
- php通过array_shift()函数移除数组第一个元素的方法