Свойство PHP Object не имеет выражения echo

0

У меня возникла проблема отображения свойства объекта. Это делает меня загадкой. Я сделал некоторые поиски в сети, включая руководство, но я действительно не уверен, что не так с моим кодом. Я верю, что способ, который я назвал, является правильным. Кстати, это часть моего кода:

print_r($this->data());
echo ' pwd:'.$this->data()->pwd;

Отображаются первые строки

Array ( [0] => stdClass Object ( [pwd] => MyPass) )

Отображается вторая строка кода

 pwd:

Я не знаю, какая часть ошибочна. Я просто хочу отобразить свойство, но не могу получить свойство объекта. Может ли кто-нибудь помочь мне объяснить это мне?

Заранее спасибо.

  • 0
    Пожалуйста, включите ваш класс и экземпляр вашего объекта
  • 0
    $data = $this->data(); echo $data[0]->pwd; если у вас есть последние версии PHP, вы можете сделать, как echo $this->data()[0]->pwd;
Показать ещё 5 комментариев
Теги:
arrays
oop

3 ответа

0
Лучший ответ

$this->data() - это массив, то есть, почему вы видите массив. Первый элемент с ключом 0 является стандартным классом, который имеет свойство pwd. Таким образом, вы можете получить к нему доступ, как

$data = $this->data(); 
echo $data[0]->pwd;

если у вас есть последняя версия PHP (5. 5+), вы можете сделать

echo $this->data()[0]->pwd;
0

Это то, как вы хотели бы повторять эхо объекта в 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);
0

проблема

$this->data()->pwd;

Вы вызываете метод и свойство... насколько я знаю, вы не можете этого сделать.

Вам просто нужно использовать $this->pwd

http://php.net/manual/en/language.oop5.properties.php

  • 0
    Извините, может быть, я использовал неправильный термин. pwd не является собственностью класса. data() - это метод в классе, который возвращает объект из другого класса. Внутри объекта есть pwd который я хочу распечатать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню