Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:通过引用传递不存在的数组项会将其添加为null_Php_Arrays_Variables_Reference - Fatal编程技术网

PHP:通过引用传递不存在的数组项会将其添加为null

PHP:通过引用传递不存在的数组项会将其添加为null,php,arrays,variables,reference,Php,Arrays,Variables,Reference,我们发现了一种不知道是否正确的行为 请查看下一个代码: <?php $a = []; $b = []; $a[] = 'Hello'; $b[] = 'Bye'; if (isset($b[1])) { $b1 = $b[1]; } $a1 = defaultValue($a[1], 'again'); print_r($a); print_r($b); exit; function defaultValue(&$var, $val) { return isset($var

我们发现了一种不知道是否正确的行为

请查看下一个代码:

<?php
$a = [];
$b = [];
$a[] = 'Hello';
$b[] = 'Bye';
if (isset($b[1]))
{
  $b1 = $b[1];
}
$a1 = defaultValue($a[1], 'again');
print_r($a);
print_r($b);
exit;
function defaultValue(&$var, $val)
{
  return isset($var) ? $var : $val;
}

为什么创建项目$a[1]?谢谢

您正在将$var传递给DefaultValue作为引用符号(&S)。 这是创建$a[1]并将其设置为null的位置


您正在将$var传递给DefaultValue作为引用符号(&S)。 这是创建$a[1]并将其设置为null的位置


手册中对此进行了解释:

注: 如果通过引用指定、传递或返回未定义的变量,将创建该变量


因此,当您传递一个未定义的引用时,它将被创建为null。Isset确保应设置为与null不同的值。因此会再次返回该值。

手册中对此进行了说明:

注: 如果通过引用指定、传递或返回未定义的变量,将创建该变量


因此,当您传递一个未定义的引用时,它将被创建为null。Isset确保应设置为与null不同的值。因此再次返回值。

谢谢。我在手册中找过,显然没有正确的术语。谢谢@gabriel-heming@jhernandis不客气。这不是常识。谢谢。我在手册中找过,显然没有正确的术语。谢谢@gabriel-heming@jhernandis不客气。这不是常识。
Array
(
    [0] => Hello
    [1] =>
)
Array
(
    [0] => Bye
)