isset

isset,第1张

isset phpisset

你所说的表单没填是说用户没有填入内容吧,但是因为你的input的key是写死的,传过来是&phone=这种形式,$_POST['phone']的值是空串,不是null。

isset只是判断变量是否是NULL,这种情况判断出来是为真的。

你可以写一个测试脚本,试一下变量为空串或者赋值为0的情况下,isset()的返回值。

如果想要实现你的需求,在你的这个具体的例子中,如果id不允许为0的话,可以用!empty()来代替isset()判断。

不过当你的输入中认为false、0、空串为合法输入时,empty也会有问题。

所以还是按照input的实际类型做仔细的合法性验证比较好。

php中isset函数有什么功能PHP判断数组key是否存在,isset返回不准确。怎么办?

引言接着我们的 PHP 数组 *** 作系列文章继续写。

今天说一说如何判断数组的key是否存在?一般大家可能立马想到了那个函数——isset。

但是这个是检测变量是否设置的,如果用来检查数组,可能又会一些副作用。

学习时间其实判断数组的键是否存在,有一个一直以来的函数 array_key_exists ,检查给定的键名或索引是否存在于数组中。

比如有下面这个例子:$key = 'jim'; // example 1 if (isset($array[$key])) { // ... } // example 2 if (array_key_exists($key, $array)) { // ... }example 1 与 2 有什么区别吗?到底哪一个性能更好一些?简单地说,isset 判断键是否存在,同时也判断键存在时值是否为空。

性能当然是快的。

而 array_key_exists 专门用于判断数组键是否存在,纵使传入的值是 NULL,也可以正确执行。

功能更为专一。

我们举一个例子:$a = array('key1' => 'フーバー', 'key2' => null); isset($a['key1']); // true array_key_exists('key1', $a); // true isset($a['key2']); // false array_key_exists('key2', $a); // true对于键 key2,是存在的,而值是null,所以isset 返回了 false,而 array_key_exists 返回了true,后者才是我们想要的结果。

写在最后看到上面的代码之后,赶紧自查一下你再程序里,还有哪些地方用了 isset 用于判断键是否存在的。

如果不想程序跑偏,还是建议更改过来哦。

Happy coding :_)我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

使用array_key_exist()即可解决

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/4387449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-31
下一篇 2022-10-31

发表评论

登录后才能评论

评论列表(0条)

保存