PHP echo不';I don’我没有按预期工作
我有以下PHP代码:PHP echo不';I don’我没有按预期工作,php,echo,Php,Echo,我有以下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) { }
$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);
我希望我说得够清楚,如果这是一个愚蠢的问题,我很抱歉。
谢谢您的时间。属性
$ep1->firstAired
是一个DateTime
对象。您无法像正在尝试的那样直接访问它的属性。您必须使用访问器方法,如format()
事实上,这真的很奇怪,至少对我来说是这样。一开始我测试只回显date属性,就像你做的那样,但它不起作用,然后我决定添加一个print\r来查看属性。。。然后我可以打印出日期字符串 这是我的代码:
$d = new DateTime();
print_r($d);
echo $d->timezone . PHP_EOL;
echo $d->date . PHP_EOL;
这样做很好,但是如果我删除了print\r
行,它就不起作用了
我的系统是windows 8,php 5.3在shell中运行,下面是我的证明:
所以你可以说你能做到这一点,你只需要先做一个打印,它可能不会在所有系统上都起作用你好。试试这个:.
echo$ep1->firstAired->date->format('Y-m-dh:i:s')代码>当传递一个对象时,echo
会输出什么?除非一个对象有一个“magic”\uuuu-toString
方法,否则你将一无所获(甚至会抛出一个错误)是的,我现在认为这是一个愚蠢的错误,但我对编码和PHP还不熟悉。谢谢你的解释。
$d = new DateTime();
print_r($d);
echo $d->timezone . PHP_EOL;
echo $d->date . PHP_EOL;