【问题标题】:PHP Assistance with empty() in a loop循环中使用empty()的PHP协助
【发布时间】:2013-05-09 17:21:29
【问题描述】:

假设我想检查一个变量是否为空,然后做一些事情......我可以这样做:

if ( empty($phone) ) { $phone = 'Not Provided'; }

但我想为一堆项目这样做。所以我在想一个数组和一个循环,所以是这样的:

$optionalFieldsArray = array($phone, $address, $city, $state, $zip);

foreach ($optionalFieldsArray as $value) {
        //what goes here????
    }

这是否是一种合理的方法,我可以在其中检查 $phone、$address、$city 等是否为空,并在为空时为其分配“未提供”字符串?

如果是这样,有人可以帮助我了解该循环内的语法吗?

【问题讨论】:

  • 这很容易用谷歌搜索
  • 是的,好吧,我没有找到合适的答案。我猜你只是比我好。
  • 感谢所有贡献自己想法的人。有趣的是,对于如何实现这一点,似乎有很多意见。希望有人会赞成这个问题。再次感谢所有做出贡献的人。
  • @SteveC。不要要求投票,这是不好的礼仪。人们不喜欢您的问题的事实是因为他们没有发现它对网站有用,或者认为它没有显示出研究成果。不要认为这是对个人的侮辱,这是有原因的,反对票只有 -2 而赞成票是 +10。
  • 感谢您的建议,本杰明。我知道我正在涉足可疑的领域,但我想我让情绪参与其中。我只是不明白这种心态,考虑到这里有数以百万计的东西我觉得没有用,但我不会因此而降低人们的声誉。缺乏研究?很抱歉人们有这种感觉...我总是先研究,但我不是 PHP 专家,所以...对某些人来说容易的事情可能对其他人来说并不容易。 :) 真诚地感谢您与我们联系。

标签: php loops foreach


【解决方案1】:

你可以这样做:

<?php

$required_vars = array( 'phone', 'address', 'city', 'state', 'zip' );
foreach( $required_vars as $required_var ) {
    if( empty( $$required_var ) ) 
        $$required_var = 'Not Provided'; // $$var -> variable with name = value of $var 
}

?>

自己检查上面的代码。那么只有你才能理解它是如何工作的。因为这是一个令人困惑的概念。

【讨论】:

  • 为什么是变量变量?
  • 他想检查给定数组中列出的一些变量。所以我们遍历数组并检查名为 current-array-element-value 的变量
  • 应该自己检查(如果不知道)。那么只有他才能理解它是如何工作的。因为它令人困惑。
  • 是的!就是这个!谢谢你,Prakash... 我现在明白 $$ 的用法了。
【解决方案2】:
$optionalFieldsArray = array('phone'=>$phone, 'address'=>$address, 'city'=>$city, 'state'=>$state, 'zip'=>$zip);

foreach ($optionalFieldsArray as $key => $value) {
    if ( empty($value) ) { $optionalFieldsArray[$key] = 'Not Provided'; }
}

echo "<pre>";
print_r($optionalFieldsArray);
echo "</pre>";

【讨论】:

    【解决方案3】:

    我会说类似 -

    $optionalFieldsArray = array($phone, $address, $city, $state, $zip);
    
    foreach ($optionalFieldsArray as $key => $value) {
            if ( empty($optionalFieldsArray[$key]) ) { 
                 $optionalFieldsArray[$key] = 'Not Provided'; 
            }
    }
    

    【讨论】:

      【解决方案4】:

      结合您提供的两个代码示例,并在可选数组中使用字符串作为键:

      $optional = array(
          'phone'   => $phone,
          'address' => $address,
          'city'    => $city,
          'state'   => $state,
          'zip'     => $zip,
      );
      foreach ($optional as $type => $value) {
          if ($value == null) {
              echo "The {$type} field is empty!<br>";
          }
      }
      

      【讨论】:

        【解决方案5】:
        $optionalFieldsArray = array($phone, $address, $city, $state, $zip);
        
        foreach($optionalFieldsArray as $k => $v) {
            // you could check for !empty here if you wanted too
            $optionalFieldsArray[$k] = empty($v) ? 'Not Provided' : $v;
         }
        
        print_r($optionalFieldsArray);
        
        Input Vars:
        $phone = "1234567899";
        $address = "";
        $city = "";
        $state = "";
        $zip = "";
        Output:
        Array ( [0] => 1234567899 [1] => Not Provided [2] => Not Provided [3] => Not Provided [4] => Not Provided )
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-02-13
          • 1970-01-01
          • 2015-04-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-05
          相关资源
          最近更新 更多