类与 2 关联数组与 foreach 循环

我有一个我无法理解的情况。例如,我有这个关联数组


$assocHeroes = array(

    array(

        "name" => "Markos",

        "type" => "boy",

    ),

    array(

        "name" => "Jim",

        "type" => "boy",

    ),

   array(

        "name" => "Maria",

        "type" => "liz",

   )

);


$wallOfHeroes = array();


foreach ($assocHeroes as $assocHero){

    foreach ($assocHero as $name=>$type){

       $hero = new Hero($name,$type);

       echo $hero->taunt();


       $wallOfHeroes[]=$hero;

    }

}



print_r($wallOfHeroes);

正如您从代码中看到的那样,$hero = new Hero($name,$type);我还有一个 Class Hero。在这个类中,我只有一个功能taunt();,更具体地说


public function taunt() {

    return "My name is {$this->name}!".PHP_EOL;

}

所以我只想得到My name is Markos My name is Jim..等..我不知道我做错了什么


Smart猫小萌
浏览 102回答 2
2回答

哈士奇WWW

首先,由于您没有给出类的代码以及如何从构造函数中分配值,因此很难告诉您哪里错了。我已根据您的问题大纲自由定义课程并附上一组工作代码。这应该工作。<?phpclass Hero{&nbsp; &nbsp; public $_name;&nbsp; &nbsp; public $_type;&nbsp; &nbsp; public function __construct($name,$type)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; $this->_name = $name;&nbsp; &nbsp; &nbsp; &nbsp; $this->_type = $type;&nbsp; &nbsp; }&nbsp; &nbsp; public function taunt()&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; return "My name is ".$this->_name."!<br>";&nbsp; &nbsp; }}$assocHeroes = array(&nbsp; &nbsp; array(&nbsp; &nbsp; &nbsp; &nbsp; "name" => "Markos",&nbsp; &nbsp; &nbsp; &nbsp; "type" => "boy",&nbsp; &nbsp; ),&nbsp; &nbsp; array(&nbsp; &nbsp; &nbsp; &nbsp; "name" => "Jim",&nbsp; &nbsp; &nbsp; &nbsp; "type" => "boy",&nbsp; &nbsp; ),&nbsp; &nbsp;array(&nbsp; &nbsp; &nbsp; &nbsp; "name" => "Maria",&nbsp; &nbsp; &nbsp; &nbsp; "type" => "liz",&nbsp; &nbsp;));$wallOfHeroes = array();for($i=0;$i<count($assocHeroes);$i++){&nbsp; &nbsp; $hero = new Hero($assocHeroes[$i]["name"],$assocHeroes[$i]["type"]);&nbsp; &nbsp; echo $hero->taunt();}&nbsp;?>

慕沐林林

你可以试试foreach,确保值可以打印,用于调试你的代码foreach ($assocHeroes as $assocHero){&nbsp;&nbsp; &nbsp;foreach ($assocHero as $key => $value){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo $key ." ". $value . "<br>";&nbsp; &nbsp;}}
打开App,查看更多内容
随时随地看视频慕课网APP