如何解决php中未定义变量的问题?



我有一个php code,其中我得到错误消息Notice: Undefined variable: c at LineA

<?php echo HelloWorld($a, $b = 6, $c); ?>  // LineA

函数定义如下:

function HelloWorld($a,$b = 0,$c = [],$max_text_length = 50) {

}

为了解决这个问题,我在LineA上面增加了LineB。

<?php $c=[] ?> // LineB
<?php echo HelloWorld($a, $b = 6, $c); ?>  // LineA

问题陈述:

我想知道是否有任何方法我可以解决未定义变量的问题为特殊情况。

如果您不需要更改$c变量,请不要这样做,因为您已经在函数中设置了默认值。

HelloWorld(1, 6); 
function HelloWorld($a, $b = 0,$c = [],$max_text_length = 50) {
print_r([$a, $b,$c,$max_text_length]); 
}

结果:

Array
(
[0] => 1  //<-- $a
[1] => 6  //<-- $b
[2] => Array //<-- $c
(
)
[3] => 50 //<-- $max_text_length
)

如果您能够修改函数调用,您可以尝试如下:

<?php echo HelloWorld($a, $b = 6, $c ?? []); ?>

因此,如果$c尚未定义,如果它是null,则将使用空数组([])。如果设置了$c,则使用它。见:https://www.php.net/manual/en/migration70.new-features.php migration70.new-features.null-coalesce-op

最新更新