Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何检测“何时”;0“;是否作为表单/$\u后置值提供?_Php_Forms_Post_Isset - Fatal编程技术网

Php 如何检测“何时”;0“;是否作为表单/$\u后置值提供?

Php 如何检测“何时”;0“;是否作为表单/$\u后置值提供?,php,forms,post,isset,Php,Forms,Post,Isset,我试图确定是否传递了一个值,但该值可以是0 isset始终返回true,empty返回false,因为值为0 我怎样才能避开这个问题呢?试试看 bool array_key_exists ( mixed $key , array $array ) 像 更多详细信息请参见。$\u POST数组的值都是字符串。使用==运算符: if ($_POST['key'] === '0') { // do things } 所有post值都是字符串,因此请考虑: isset($a[i]) &

我试图确定是否传递了一个值,但该值可以是
0

isset
始终返回true,
empty
返回false,因为值为
0

我怎样才能避开这个问题呢?

试试看

bool array_key_exists ( mixed $key , array $array )


更多详细信息请参见。

$\u POST
数组的值都是字符串。使用
==
运算符:

if ($_POST['key'] === '0') {
   // do things
}

所有post值都是字符串,因此请考虑:

isset($a[i]) && strlen($a[i])
当且仅当提供值(除“空字符串”)时,该值才为真。与
empty
不同,它还将检测“0”何时作为值传递。与建议的解决方案不同,当提供“”时,它将不为真:因此,它真正检测传递值的时间



另外,$\u POST键的
array\u key\u存在
isset
的工作原理相同,因为没有空值;可以说,关键检查是针对非空字符串的检查。一旦确定某个值存在(根据上述/所需规则),就可以对其进行适当的处理-例如,
if($a[i]>0)
if($a[i]==0)

简单地检查该值是否为空:

if (isset($_POST['key']) && $_POST['key'] !== '')) {
  //'key' is set and not empty
}
试试这个

如果(isset($\u POST['name'])和&$\u POST['name']!=0)){ /你的代码/ }


我被你要找的东西弄糊涂了。零是一个值。您正在寻找任何非空值吗?这就是
!空的
不起作用。您的有效输入范围是多少?因此您要么得到true(
isset
),要么得到false(
empty
)。选择一个,在处理布尔人的问题时没有“半真半假”。也许如果($var>=0){}@Ben,Alex会在下面给出我所需要的答案。谢谢。
和empty返回false,因为值为0
,这是不需要的。对于0,Empty应该返回true。它可能是非“0”值。这与我所做的不完全相同,但它提示我使用
Input::has('name')
,因为我使用了Laravel。谢谢
if (isset($_POST['key']) && $_POST['key'] !== '')) {
  //'key' is set and not empty
}