int(4490826) ["number"]=> int(12) ["season"]=> int(3) "> int(4490826) ["number"]=> int(12) ["season"]=> int(3) "> int(4490826) ["number"]=> int(12) ["season"]=> int(3) " />

PHP-эхо не работает должным образом

У меня есть следующий код PHP:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
var_dump($ep1); 

Он возвращает это:

object(TvDb\Episode)#60 (17) {
    ["id"]=> int(4490826)
    ["number"]=> int(12)
    ["season"]=>      int(3)
    ["directors"]=> array(0) { }
    ["guestStars"]=> array(0) { }        
    ["writers"]=> array(0) { }
    ["name"]=> string(11) "Episode 312"
    ["firstAired"]=> object(DateTime)#57 (3) {
        ["date"]=> string(19) "2013-04-07 00:00:00"
        ["timezone_type"]=> int(3)
        ["timezone"]=> string(12) "Europe/Sofia"
    }
    ["imdbId"]=> string(0) ""
    ["language"]=> string(2) "en"
    ["overview"]=> string(0) ""
    ["rating"]=> string(1) "0"
    ["ratingCount"]=> int(0)
    ["lastUpdated"]=> object(DateTime)#3 (3) {
        ["date"]=> string(19) "2013-01-30 22:15:41"
        ["timezone_type"]=> int(1)
        ["timezone"]=> string(6) "+00:00"
    }
    ["seasonId"]=> int(501077)
    ["serieId"]=> int(161511)
    ["thumbnail"]=> string(0) ""
}    

Я хочу повторить «дату», и я пишу следующее:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
echo ($ep1->firstAired->date);

И он ничего не возвращает, но когда я это делаю:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
var_dump($ep1);
echo ($ep1->firstAired->date);

И вот после дампа дата показывает:

object(TvDb\Episode)#60 (17) { ["id"]=> int(4490826) ["number"]=> int(12) ["season"]=> int(3) ["directors"]=> array(0) { } ["guestStars"]=> array(0) { } ["writers"]=> array(0) { } ["name"]=> string(11) "Episode 312" ["firstAired"]=> object(DateTime)#57 (3) { ["date"]=> string(19) "2013-04-07 00:00:00" ["timezone_type"]=> int(3) ["timezone"]=> string(12) "Europe/Sofia" } ["imdbId"]=> string(0) "" ["language"]=> string(2) "en" ["overview"]=> string(0) "" ["rating"]=> string(1) "0" ["ratingCount"]=> int(0) ["lastUpdated"]=> object(DateTime)#3 (3) { ["date"]=> string(19) "2013-01-30 22:15:41" ["timezone_type"]=> int(1) ["timezone"]=> string(6) "+00:00" } ["seasonId"]=> int(501077) ["serieId"]=> int(161511) ["thumbnail"]=> string(0) "" } 2013-04-07 00:00:0

У меня нет этой проблемы:

$ep1 = $tvdb->getEpisodeById($cur->id, 'en');
echo ($ep1->name);

Надеюсь, я был достаточно ясен, и мне жаль, если это глупый вопрос. Спасибо за ваше время.

3
nl ja de
что вы ожидали, когда echo будет выводиться при передаче объекта? если у объекта нет метода «magic» __ toString , вы ничего не получите (и даже выбросите ошибку)
добавлено автор poncha, источник
Здравствуй. Попробуйте следующее: php.net/manual/ro/datetime.format.php . echo $ ep1-> firstAired-> date-> format ('Ymd H: i: s');
добавлено автор ioanb7, источник
Да, я теперь глупая ошибка, но я новичок в кодировании и PHP. Спасибо за объяснение.
добавлено автор Engin Dzhemil, источник

2 ответы

The property $ep1->firstAired is a DateTime object. You cannot access it's properties directly like you're trying. You have to use the accessor methods like format()

   echo $ep1->firstAired->format('Y-m-d H:i:s');
3
добавлено
Большое спасибо :)
добавлено автор Engin Dzhemil, источник

На самом деле это действительно, действительно странно, по крайней мере для меня. Сначала я тестировал только свойство даты, как и вы, и это не сработало, и я решил добавить print_r, чтобы увидеть свойства ... И затем я смог распечатать строку даты.

Это мой код:

$d = new DateTime();
print_r($d);
echo $d->timezone  . PHP_EOL;
echo $d->date  . PHP_EOL;

И делать это, как это работает отлично, однако удалить строку print_r , она не работает.

Моя система - это окна 8 с PHP 5.3, работающие в оболочке, и вот мое доказательство:

Yet another <a href=PHP feature.">

Таким образом, вы можете сказать, что вы можете это сделать, вам просто нужно сначала сделать print_r, и это, вероятно, не будет работать на всех системах. : D

1
добавлено
Вау. Вы сообщили об ошибке?
добавлено автор ioanb7, источник
phpGeeks
phpGeeks
3 620 участник(ов)

Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

PHP
PHP
1 309 участник(ов)

Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

PHP — вакансии, поиск работы и аналитика
PHP — вакансии, поиск работы и аналитика
1 251 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

phpGeeksJunior
phpGeeksJunior
980 участник(ов)

Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

phpclub.ru
phpclub.ru
872 участник(ов)

Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

Devall | PHP
Devall | PHP
272 участник(ов)

Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp