isset 判断 POST 没啥意义啊,但网上好多代码都是这么写的
1
mrpzx001 152 天前
这不是常识?
|
![]() |
2
yuzo555 152 天前 ![]() 正常不是该用 $_SERVER['REQUEST_METHOD'] 判断?
|
3
fairless 152 天前
一般判断某个字段是否存在采用 issset($_POST['xxxx']),而且现在大部分都是从框架 request 对象获取表单了
|
![]() |
4
qqjt 152 天前
上框架吧,laravel 走起,少去踩老坑了,没意义
|
5
frank553000 152 天前
请问用框架做的各位,
假如做一般的企业网站(有产品,产品筛选等,或者以后加支付等)这类功能的。 后台功能都要自己写吗?还是拿开源的改一下? |
![]() |
6
fiypig 152 天前
我还是习惯!empty()解决一切烦恼
|
![]() |
7
00ing 152 天前
php 基础有待提高
|
![]() |
8
minbaby 152 天前
如果不在 fpm 里执行 php 代码, $_POST 就不一定存在
|
![]() |
9
yuanchao 152 天前
isset 和 empty 是两回事呀
|
10
liaohongxing 152 天前
$_POST 超级变量永远是一个 array, 表单有值自动填充到这个 array ,没值是一个空 array , 空 array 满足 isset 的情况。
|
![]() |
11
hahasong 152 天前
上手 PHP 要求这么低吗 这种问题文档里难道没有
|
12
liaohongxing 152 天前
@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
totoro52 152 天前
这哪里是坑,是你没去文档和好好了解 PHP 的底层,很多程序都是直接取$_POST ,那如果没有默认定义为 array ,那到时得一堆报错,坑更多
|
![]() |
15
wonderfulcxm 152 天前 via iPhone
…我竟无言以对,明明是你基础有问题
|
![]() |
16
iwh718 152 天前 via Android
这就离谱。。。这正常吧。
|
17
xinshoushanglu 152 天前
你是第一天用 php 吗?
|
18
liaohongxing 152 天前
@qinrui
isset 在其他语言就是判断内存有无分配。 空 array 就是内存已分配,但是分配了一个空的 hashmap, 里面没数据而已。 isset 判断一个空 array 就是 true 。而$_POST 就是一个特殊的空 array , 永远已分配 。判断这个肯定总是 true |
![]() |
19
jfcherng 152 天前
Truth table 來了 https://www.php.net/manual/en/types.comparisons.php
|
![]() |
20
mht 152 天前
我也不认为这个是坑。。。isset 表面意思就是这个变量是否设置了,empty 是判断变量是不是 PHP 的意义上的空。。。
|
![]() |
21
eviladan0s 151 天前
isset($_POST['test'])这种才行,超全局遍历肯定是一直存在的
|
22
jhdxr 150 天前
@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 149 天前
面向复制编程,也应该做一些测试的。
很多分享的代码,都是错代码,而且错得让人不明所以…… |
![]() |
24
NewYear 149 天前
我甚至遇到过,代码都是对的,但是有一句语句放错了位置,调整好位置就可以用了……
|
![]() |
25
pytth 127 天前 via iPhone
empty($_POST["xxx"]) || isset($_POST["xxx"])
我喜欢双重判断,总有一个中招 |