isset 判断 POST 没啥意义啊,但网上好多代码都是这么写的
isset 判断 POST 没啥意义啊,但网上好多代码都是这么写的
1
mrpzx001 Oct 28, 2022
这不是常识?
|
2
yuzo555 Oct 28, 2022 正常不是该用 $_SERVER['REQUEST_METHOD'] 判断?
|
3
fairless Oct 28, 2022
一般判断某个字段是否存在采用 issset($_POST['xxxx']),而且现在大部分都是从框架 request 对象获取表单了
|
4
qqjt Oct 28, 2022
上框架吧,laravel 走起,少去踩老坑了,没意义
|
5
frank553000 Oct 28, 2022
请问用框架做的各位,
假如做一般的企业网站(有产品,产品筛选等,或者以后加支付等)这类功能的。 后台功能都要自己写吗?还是拿开源的改一下? |
6
fiypig Oct 28, 2022
我还是习惯!empty()解决一切烦恼
|
7
00ing Oct 28, 2022
php 基础有待提高
|
8
minbaby Oct 28, 2022
如果不在 fpm 里执行 php 代码, $_POST 就不一定存在
|
9
getcodex Oct 28, 2022
isset 和 empty 是两回事呀
|
10
liaohongxing Oct 28, 2022
$_POST 超级变量永远是一个 array, 表单有值自动填充到这个 array ,没值是一个空 array , 空 array 满足 isset 的情况。
|
11
hahasong Oct 28, 2022
上手 PHP 要求这么低吗 这种问题文档里难道没有
|
12
liaohongxing Oct 28, 2022
@hahasong
文档有说明 : https://www.php.net/manual/zh/function.isset.php 判断一个变量是否已设置, 即变量已被声明,且其值不为 null 。 https://www.php.net/manual/zh/function.empty 判断一个变量是否被认为是空的。当一个变量并不存在,或者它的值等同于 false ,那么它会被认为不存在。如果变量不存在的话,empty()并不会产生警告。 就楼主太菜。 |
13
qinrui OP @liaohongxing 即使不往页面 post 数据,isset ($_post [])仍然是真
|
14
MIUIOS Oct 28, 2022
这哪里是坑,是你没去文档和好好了解 PHP 的底层,很多程序都是直接取$_POST ,那如果没有默认定义为 array ,那到时得一堆报错,坑更多
|
15
wonderfulcxm Oct 28, 2022 via iPhone
…我竟无言以对,明明是你基础有问题
|
16
iwh718 Oct 28, 2022 via Android
这就离谱。。。这正常吧。
|
17
xinshoushanglu Oct 28, 2022
你是第一天用 php 吗?
|
18
liaohongxing Oct 28, 2022
@qinrui
isset 在其他语言就是判断内存有无分配。 空 array 就是内存已分配,但是分配了一个空的 hashmap, 里面没数据而已。 isset 判断一个空 array 就是 true 。而$_POST 就是一个特殊的空 array , 永远已分配 。判断这个肯定总是 true |
19
jfcherng Oct 28, 2022
Truth table 來了 https://www.php.net/manual/en/types.comparisons.php
|
20
mht Oct 28, 2022
我也不认为这个是坑。。。isset 表面意思就是这个变量是否设置了,empty 是判断变量是不是 PHP 的意义上的空。。。
|
21
eviladan0s Oct 29, 2022
isset($_POST['test'])这种才行,超全局遍历肯定是一直存在的
|
22
jhdxr Oct 30, 2022
@qinrui
https://www.php.net/manual/en/reserved.variables.post.php > This is a 'superglobal', or automatic global, variable. This simply means that it is available in all scopes throughout a script. https://www.w3schools.com/php/php_superglobals_post.asp > Super global variables are built-in variables that are always available in all scopes. 不知道你觉得『不往页面 post 数据』$_POST 就不存在的想法是哪来的(还是说你不知道 isset 判断的不是是否为空而是变量是否存在)? |
23
NewYear Oct 31, 2022
面向复制编程,也应该做一些测试的。
很多分享的代码,都是错代码,而且错得让人不明所以…… |
24
NewYear Oct 31, 2022
我甚至遇到过,代码都是对的,但是有一句语句放错了位置,调整好位置就可以用了……
|
25
liKeYunKeji Nov 23, 2022 via iPhone
empty($_POST["xxx"]) || isset($_POST["xxx"])
我喜欢双重判断,总有一个中招 |