我有一个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