为什么这个php数组不返回错误?

为什么这个php数组不返回错误?,php,arrays,loops,matrix,foreach,Php,Arrays,Loops,Matrix,Foreach,我知道我可以键入echo“字母:{$letters[0]}”返回字母“A”,但如果我键入echo“字母:{$letters}”然后我将收到一个错误 我的重点是第13行,{echo”$array[$key]=$value”} 为什么不返回错误 在'$array'中未指定任何点,'$key'中从未分配任何点,'$value'中未指定任何点 我几天前才开始学习PHP和MySQL。 非常感谢您的帮助,因为我正在努力学习,并希望继续阅读本书的下一部分,但我需要先了解一下这一点 ~z~谢谢 所有这三个变量都

我知道我可以键入
echo“字母:{$letters[0]}

返回字母“A”,但如果我键入
echo“字母:{$letters}

然后我将收到一个错误

我的重点是第13行,
{echo”
  • $array[$key]=$value”}
  • 为什么不返回错误

    '$array'
    中未指定任何点,
    '$key'
    中从未分配任何点,
    '$value'
    中未指定任何点

    我几天前才开始学习PHP和MySQL。 非常感谢您的帮助,因为我正在努力学习,并希望继续阅读本书的下一部分,但我需要先了解一下这一点


    ~z~谢谢

    所有这三个变量都是由
    foreach
    构造为循环体临时定义的变量,它们都是数字或字符串,而不是数组

    上面的一行定义了该循环主体的变量
    $array
    $list
    $array
    是依次设置为
    $matrix
    的每个键的字符串
    $list
    是每个键的对应值

    foreach($matrix as $array => $list)
    

    类似地,这定义了循环体中的变量
    $key
    $value
    $key
    被设置为
    $list
    的每个键,并且
    $value
    被设置为每个匹配值。

    所有这三个变量都是由
    foreach
    构造为循环体临时定义的变量,每个变量都是数字或字符串,而不是数组

    上面的一行定义了该循环主体的变量
    $array
    $list
    $array
    是依次设置为
    $matrix
    的每个键的字符串
    $list
    是每个键的对应值

    foreach($matrix as $array => $list)
    

    类似地,这定义了循环体中的变量
    $key
    $value
    $key
    设置为
    $list
    的每个键,并且
    $value
    设置为每个匹配值。

    所有这三个变量都是标量值(字符串或数字),因此直接打印它们没有问题

    foreach($list as $key => $value)
    
    看看它是如何工作的。在这里,命名不好的
    $array
    将有两个值之一:要么
    “字母”
    ,要么
    “数字”
    。很明显,它们都可以打印而不需要发行

    foreach($matrix as $array => $list)
    

    这里的
    $list
    将是
    数组('A','B','C')
    (1,2,3)
    。在任何一种情况下,
    $key
    将有一个值
    0
    1
    2
    $value
    将是字符串或整数。同样,可以毫无问题地打印所有这些变量。

    这三个变量都是标量值(字符串或数字),因此直接打印它们没有问题

    foreach($list as $key => $value)
    
    foreach($list as $key => $value)
    
    看看它是如何工作的。在这里,命名不好的
    $array
    将有两个值之一:要么
    “字母”
    ,要么
    “数字”
    。很明显,它们都可以打印而不需要发行

    foreach($matrix as $array => $list)
    
    这里的
    $list
    将是
    数组('A','B','C')
    (1,2,3)
    。在任何一种情况下,
    $key
    将有一个值
    0
    1
    2
    $value
    将是字符串或整数。同样,所有这些都可以毫无问题地打印。

    foreach($array=>$list的矩阵)
    
    foreach($list as $key => $value)
    
    { //$array是字符串“字母”,而$list是第一次迭代的数组$letters //$array是字符串“Number”,而$list是第二次迭代的数组$numbers 回声“
      ”; foreach($key=>$value) { //当$list=$letters时 //第一次迭代:$key=0和值'A';第二次迭代:$key=1和$value='B'。。。。。 //最后 //$array表示“字母” //$key平均值0 //$value表示“A” //循环继续 echo“
    • $array[$key]=$value”; //结果 //
    • 字母[0]=A; //字母[1]=B; //............. } 回声“
    ”; }
    希望您能理解。
    请记住,您的li标签未关闭。请使用此标签

    foreach($matrix as $array => $list)
    {
        //$array is String "Letter" and $list is array $letters for first iteration
        //$array is String "Number" and $list is array $numbers for second iteration
    
        echo'<ul>';
        foreach($list as $key => $value)
        {
           //when $list=$letters 
           //1st iteration:$key =0 and value 'A'; 2nd iteration :$key=1 and $value= 'B'.....
    
          //finally
          //$array means "Letter"
          //$key mean 0
          //$value  mean "A"
    
          //and loop goes on
    
    
            echo "<li>$array [$key] = $value";
             //result
             //<li>Letter[0] = A;
             //<li>Letter[1] = B;  
             //.............
        }
        echo '</ul>';
    }
    
    echo“
  • $array[$key]=$value
  • ”;
    foreach($array形式的矩阵=>$list)
    {
    //$array是字符串“字母”,而$list是第一次迭代的数组$letters
    //$array是字符串“Number”,而$list是第二次迭代的数组$numbers
    回声“
      ”; foreach($key=>$value) { //当$list=$letters时 //第一次迭代:$key=0和值'A';第二次迭代:$key=1和$value='B'。。。。。 //最后 //$array表示“字母” //$key平均值0 //$value表示“A” //循环继续 echo“
    • $array[$key]=$value”; //结果 //
    • 字母[0]=A; //字母[1]=B; //............. } 回声“
    ”; }
    希望您能理解。
    请记住,您的li标签未关闭。请使用此标签

    foreach($matrix as $array => $list)
    {
        //$array is String "Letter" and $list is array $letters for first iteration
        //$array is String "Number" and $list is array $numbers for second iteration
    
        echo'<ul>';
        foreach($list as $key => $value)
        {
           //when $list=$letters 
           //1st iteration:$key =0 and value 'A'; 2nd iteration :$key=1 and $value= 'B'.....
    
          //finally
          //$array means "Letter"
          //$key mean 0
          //$value  mean "A"
    
          //and loop goes on
    
    
            echo "<li>$array [$key] = $value";
             //result
             //<li>Letter[0] = A;
             //<li>Letter[1] = B;  
             //.............
        }
        echo '</ul>';
    }
    
    echo“
  • $array[$key]=$value
  • ”;
    首先

    echo "<li>$array [$key] = $value </li>";
    
    echo“字母:{$letters}

    ”;
    返回错误,因为您试图回显整个数组。echo是做不到的

    此代码

    echo "<p>Letter: {$letters}</p>";
    
    foreach($key=>$value)
    {echo“
  • $array[$key]=$value”} 回声“”; }
  • 有效,因为每个值都有自己的键。如果没有为某个值定义键,则会自动添加该键。 你说你知道这是可行的:

    foreach($list as $key => $value)
    { echo "<li>$array [$key] = $value"; }
    echo '</ul>';
    }
    
    echo“字母:{$letters[0]}

    ”;
    “0”是键,它是在数组初始化期间自动添加的。键不需要是字符串就可以是某个值的键。

    首先

    echo "<li>$array [$key] = $value </li>";
    
    echo“字母:{$letters}

    ”;
    返回错误,因为您试图回显整个数组。echo是做不到的

    此代码

    echo "<p>Letter: {$letters}</p>";
    
    foreach($list)