数组php循环值和键
我正在尝试检查键的值:数组php循环值和键,php,arrays,Php,Arrays,我正在尝试检查键的值: $errorArray=array(); $naamarray["naam"]=false; $naamarray["voornaam"]=false; $naamarray["adres"]=false; $naamarray["woonplaats"]=false; $naamarray["postcode"]=false; $naamarray["telefoonnummer"]=false; $naamarray["geboortedatum"]=f
$errorArray=array();
$naamarray["naam"]=false;
$naamarray["voornaam"]=false;
$naamarray["adres"]=false;
$naamarray["woonplaats"]=false;
$naamarray["postcode"]=false;
$naamarray["telefoonnummer"]=false;
$naamarray["geboortedatum"]=false;
$naamarray["adres"]=false;
$naamarray["wachtwoord"]=false;
$naamarray["email"]=false;
$naamarray["email"]=true;
foreach($naamarray as $key => $value){
if($value == false){
array_push($errorArray,$key);
echo $key;
echo $value;
}
}
但价值永远不会显现,我错在哪里 在php中,
false
是布尔类型。由于已将其指定给数组值,因此需要使用var\u dump
查看键的实际值:
var_dump($key);
您可能希望将字符串值指定给数组值。请注意:
echo false
不会回显任何内容。尝试以下操作:
$errorArray=array();
$naamarray["naam"]='false';
$naamarray["voornaam"]='false';
$naamarray["adres"]='false';
$naamarray["woonplaats"]='false';
$naamarray["postcode"]='false';
$naamarray["telefoonnummer"]='false';
$naamarray["geboortedatum"]='false';
$naamarray["adres"]='false';
$naamarray["wachtwoord"]='false';
$naamarray["email"]='false';
$naamarray["email"]='true';
foreach($naamarray as $key => $value){
if($value == 'false'){
array_push($errorArray,$key);
echo $key;
echo $value;
}
}
因为它们总是假的,所以毫无意义
echo false;
为您提供
您不能在PHP中回显布尔变量。如果您只是想调试-使用
var_dump($value);
相反。有趣的是,钥匙确实会在我的家庭服务器上回响。但话说回来;echo'ing bool false将不会输出任何内容。尝试在if语句之前回显键和值,以查看您可以确定的内容。回显布尔值只是首先将其转换为字符串。true值强制转换为字符串“1”,false值强制转换为字符串“”(空白)。为什么转换为字符串?从我所知道的上下文来看,使它们成为字符串不会有任何好处,因为在表单验证中,您不会只向用户显示“false”或“true”。使用布尔值是合适的,因为它占用更少的空间,并且在比较($boolean)或(!$boolean)时正确计算为true或false。使用字符串意味着您还必须担心大小写的敏感性,然后我们开始使用True、False、FileNotFound枚举斜率@我不确定OP的要求。如果他的要求与您所说的一样,那么使用布尔值是一条非常规的道路。如果他只是想检查键中的内容,他可以简单地使用字符串值。否则,需要使用
var\u dump
来查看false
和true
值。在将true
值转换为1
字符串时,您可以很容易地看到该值。假值是唯一困难的部分。或者,var\u export
也可用于查看布尔值的本机形式。对于OP,我建议在完成后,而不是在执行期间,简单地var\u dump
整个errorArray。为什么要进行向下投票?当然,我不建议任何人使用字符串作为布尔值,但var_dump并不是完全友好的UI,也许他希望以一种好的格式显示它,这将允许他这样做。与其将内部值更改为字符串(将自己绑定到特定值,使在其他地方更改或检查它变得更加困难),不如将其作为布尔值使用,在输出时更改值会更容易,例如:echo($value)?'真’:‘假’;或者:var_出口(价值);仍然只适用于调试或系统检查页面。表单验证输出对用户不友好。