Итак, у меня есть класс, и я хотел бы иметь возможность получить любое имя trackName (двухмерный массив) после инициализации объекта в другом скрипте php. Это является частью класса, который имеет отношение:Открытый класс PHP как двумерный массив, как?
class fetchData{
public $artistName;
public $trackName;
public function getArtistTracks(){
$i = 0;
if($tracks = getTracks()){
foreach ($tracks['results'] as $track){
// $artistName is an array of strings (defined as public)
$name[$this->artistName][$i] = $track['name'];
$i++;
}
}
return $name;
}
// later in the class one other function there is this
function initialize(){
...
...
$this->trackName = $this->getArtistTracks();
}
}
Вот как я думал, что я мог бы назвать artistName и trackName из другого сценария:
$temp = new fetchData();
echo $temp->artistName[3]; // this works (returns 'some_artist_name' for example)
echo $temp->trackName[$temp->artistName[3]][1]; // this doesn't work
echo $temp->trackName['some_artist_name'][1]; // this also doesn't work
Я попробовал несколько других способов. Например, вместо этого:
$name[$this->artistName][$i] = $track['name'];
Я бы поставил это:
$this->name[$this->artistName][$i] = $track['name'];
без возвращения в getArtistTracks() и без линии в Initialize(), но это не работает также. как я могу получить эти имена дорожек из другого сценария?
спасибо =)
Почему бы просто не сделать print_r переменной trackName, чтобы узнать, что она на самом деле содержит? Ваша проблема в том, что trackName, вероятно, не содержит того, что вы думаете. –
Да, вы были правы, $ i был в неправильном цикле, поэтому индексы были полностью wromg. спасибо =) – pootzko