0

カービィ CMSを使用しています。

最新の投稿を取得しようとしていますが、最新の投稿が $latest 変数と一致する場合に限ります。

$today = new DateTime("now"); //Declare today
$startdate = new DateTime("2013-06-30"); //Declare startdate
$interval = $startdate->diff($today); //Find the difference between startdate & today
$latest = $interval->format('%a'); //Declare $latest variable to be that interval, formatted as integer

$posts = $pages->find('posts')->children(); //Declare posts

$latestpost = $posts->find($latest); //Find post which matches the $latest variable

に到達しようとしていますが、実際に存在する$latestpost->url();場合のみです。$latestpost現時点でそうでない場合は、非オブジェクトとして表示されます。

取得方法が原因$latestpostで、動作issetdefinedません。

他にどうすればこれを行うことができますか?

4

1 に答える 1

0

返されるものに応じて$posts->find(..);(カービィのソースを見ると、nullまたはになりますfalse)、さまざまなチェックを使用できます。

あなたの最善の策はempty、ほとんどのケースをキャッチするため、単に使用することです。特定のチェックよりも効率がわずかに低下します。

if (!empty($lastestpost)) {
    $url = $latestpost->url();
}
于 2013-07-10T10:59:23.277 に答える