PHP函数不会打印

时间:2018-05-04 21:20:08

标签: php arrays function

我已经构建了一个php函数来打印输入到我的数组中的人的名字,但它不是打印名称,它只打印单词。 如果你能帮助我,请告诉我。

<?php

$names = array(0 => array(name =>"Becky", email => "@hotmail.com"),
            1 => array(name =>"Tom", email => "@yahoo.com"),
            2 => array(name => "Milduew", email => "@google.com")
);

function printInfo() {
echo "<table>";
foreach((array) $names as $name){
   echo "<tr><td>" . $name[0]. "</td>";
   echo "<td>" . $name[1]. "</td>";
   echo "<td>" . $name[2]. "</td></tr>";
   echo"</table>";
}

 }


 printInfo();
?>

2 个答案:

答案 0 :(得分:1)

两个主要问题:

  1. Scope$names范围内未定义printInfo()

    您可以将功能更改为take the array as an argument

    function printInfo($names) { ...
    

    然后使用printInfo($names);

  2. 调用它
  3. $names数组中的内部数组包含字符串键,但您指的是数字键。

    您需要引用$name['name']$name['email']而不是$name[0]$name[1]。 (顺便提一下,您的输入数组只有两列,因此无论如何都不会定义$name[2]。)

  4. 此外,不需要将$names转换为数组(在foreach循环中使用(array) $names),这样做实际上可能会导致问题。如果需要确保输入是数组,可以在函数定义中声明类型。

    function printInfo(array $names) { ...
    

答案 1 :(得分:-1)

需要使用以下内容:

$name['name'] instead of name[0]