为了账号安全,请及时绑定邮箱和手机立即绑定

类与 2 关联数组与 foreach 循环

类与 2 关联数组与 foreach 循环

PHP
Smart猫小萌 2023-04-15 16:46:20
我有一个我无法理解的情况。例如,我有这个关联数组$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..等..我不知道我做错了什么
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

首先,由于您没有给出类的代码以及如何从构造函数中分配值,因此很难告诉您哪里错了。


我已根据您的问题大纲自由定义课程并附上一组工作代码。这应该工作。


<?php


class Hero

{

    public $_name;

    public $_type;


    public function __construct($name,$type) 

    {

        $this->_name = $name;

        $this->_type = $type;

    }

    public function taunt() 

    {

        return "My name is ".$this->_name."!<br>";

    }

}

$assocHeroes = array(

    array(

        "name" => "Markos",

        "type" => "boy",

    ),

    array(

        "name" => "Jim",

        "type" => "boy",

    ),

   array(

        "name" => "Maria",

        "type" => "liz",

   )

);

$wallOfHeroes = array();

for($i=0;$i<count($assocHeroes);$i++)

{

    $hero = new Hero($assocHeroes[$i]["name"],$assocHeroes[$i]["type"]);

    echo $hero->taunt();

?>


查看完整回答
反对 回复 2023-04-15
?
慕沐林林

TA贡献2016条经验 获得超9个赞

你可以试试foreach,确保值可以打印,用于调试你的代码


foreach ($assocHeroes as $assocHero){ 

   foreach ($assocHero as $key => $value){

         echo $key ." ". $value . "<br>";

   }

}


查看完整回答
反对 回复 2023-04-15
  • 2 回答
  • 0 关注
  • 100 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信