2

我试图将变量列表放入数组中(用于错误报告类),但如果未设置变量,则不会“压缩”。

以下是代码的摘录:

$testVar1 = 123;
$testVar2 = 'ABC';

$ErrorArray = compact('testVar1', 'testVar2', 'notSetVar');

然后我遍历 $ErrorArray :

foreach($ErrorArray as $key => $value) {
    $TempErrorMessage .= '$'.$key.' == '.$value.' ---- ';
}

结果输出是:

$testVar1 == 123 ---- $testVar2 == ABC ----

问题是,我想将“notSetVar”输出为“”/NULL,因为这很可能是我的错误所在......

任何建议都将受到欢迎!

最好的问候福特

4

1 回答 1

1

根据 PHP 文档 http://php.net/manual/en/function.compact.php

compact 创建一个包含变量及其值的数组。

对于其中的每一个,compact() 在当前符号表中查找具有该名称的变量并将其添加到输出数组中,以便变量名称成为键,变量的内容成为该键的值。简而言之,它与 extract() 相反。

任何未设置的字符串都将被跳过。

因此,除非它的集合,否则不可能通过紧凑传递变量。我的建议是,在 compact() 之前检查变量。

 $testVar1 = 123;
    $testVar2 = 'ABC';
    if (!isset($notSetVar) {
     $notSetVar = null;
   }

    $ErrorArray = compact('testVar1', 'testVar2', 'notSetVar');

var_dump($ErrorArray);
于 2013-10-05T04:32:30.097 回答