У меня возникла проблема отображения свойства объекта. Это делает меня загадкой. Я сделал некоторые поиски в сети, включая руководство, но я действительно не уверен, что не так с моим кодом. Я верю, что способ, который я назвал, является правильным. Кстати, это часть моего кода:
print_r($this->data());
echo ' pwd:'.$this->data()->pwd;
Отображаются первые строки
Array ( [0] => stdClass Object ( [pwd] => MyPass) )
Отображается вторая строка кода
pwd:
Я не знаю, какая часть ошибочна. Я просто хочу отобразить свойство, но не могу получить свойство объекта. Может ли кто-нибудь помочь мне объяснить это мне?
Заранее спасибо.
$this->data()
- это массив, то есть, почему вы видите массив. Первый элемент с ключом 0
является стандартным классом, который имеет свойство pwd. Таким образом, вы можете получить к нему доступ, как
$data = $this->data();
echo $data[0]->pwd;
если у вас есть последняя версия PHP (5. 5+), вы можете сделать
echo $this->data()[0]->pwd;
Это то, как вы хотели бы повторять эхо объекта в php, в моем примере я создал массив, добавил объект в массив, закодировал массив и затем, наконец, эхом выделил массив с объектом в нем.
$posts= array();
class Item {
public $title = "";
public $firstName = "";
public $lastName = "";
public $email = "";
public $id = "";
}
$e = new Item();
$e->title = $title;
$e->firstName = $firstName;
$e->lastName = $lastName;
$e->email = $email;
$e->id = $id;
array_push($posts, $e);
json_encode($posts);
echo json_encode($posts);
проблема
$this->data()->pwd;
Вы вызываете метод и свойство... насколько я знаю, вы не можете этого сделать.
Вам просто нужно использовать $this->pwd
pwd
не является собственностью класса. data()
- это метод в классе, который возвращает объект из другого класса. Внутри объекта есть pwd
который я хочу распечатать.
$data = $this->data(); echo $data[0]->pwd;
если у вас есть последние версии PHP, вы можете сделать, какecho $this->data()[0]->pwd;