gpt4 book ai didi

php、mysql、数组 - if( x == 0 ) { }

转载 作者:行者123 更新时间:2023-11-29 14:55:55 25 4
gpt4 key购买 nike

我有以下代码

while($row = $usafisRSP->fetch_assoc()){ $hidden_keys  = array('Applicantid', 'unique_num', 'regs_time' ....); $hidden_fields = array_intersect_key($row, array_fill_keys($hidden_keys, NULL));$hidden_values = array();foreach ($hidden_fields as $key => $value) {  // fill the values array using the values from fields array  $hidden_values[$value] =  "$key = ".base64_decode($value)."
";if(base64_decode($value)== 0){ $hidden_values[$value] = "";} echo $hidden_values[$value];

问题是关于“if($hidden_​​values[$value] == 0)”...基本上我不想显示/回显 $hidden_​​values[$value] 如果 $value 的值为 0。有时$value 是 0 或一些单词,如 (23 avenue)。

最佳答案

我认为您遇到了 PHP type comparisons and equalities 的三个问题:

  1. 任何不以数字开头的字符串总是松散地等于 0。所以基本上, if(base64_decode($value)== 0) 可能总是解析为 true ,即使解码的 $value"Adam"
  2. base64_decode的返回值是一个字符串,所以如果结果为0,它将是string 0,而不是integer 0。这意味着if(base64_decode($value) === 0)不会如果解码 $value"0" ,甚至不起作用。另一个问题是,base64_decode 可能会在错误时返回 false,再次未能通过严格的相等性检查。
  3. 非空字符串("0" 除外)始终松散地等于 true。因此,这是您的案例真正需要的唯一比较。

我认为这就是你想要的,替换最后 5 行...

if(base64_decode($value)) echo $hidden_values[$value];
else $hidden_values[$value] = "";

} // closing your for loop

关于php、mysql、数组 - if( x == 0 ) { },我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4639761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com