警告メッセージ
状態:-
閲覧数:2,409
投稿日:2016-11-24
更新日:2016-11-24
Notice: Trying to get property of non-object in
内容
未定義変数またはnullを持つ変数のメンバにアクセス
・存在しない(or 値がnullな)変数のプロパティを参照しようとしたときに発生
遭遇例1
Noticeが表示されてしまうコード
Twitter API 使用
・取得したstdClassクラスオブジェクトをforeachでループすると、警告が表示されてしまう
$result = $connection->get("search/tweets", array("q" => "プログラミング"));
foreach ($result as $key => $val) {
foreach ($val as $key2 => $val2) {
echo $text."<br><br>";
}
}
対応例1
PHP7以上で使用可能なnull合体演算子(??)を使用
$result = $connection->get("search/tweets", array("q" => "プログラミング"));
foreach ($result as $key => $val) {
foreach ($val as $key2 => $val2) {
$text = $val2->text ?? '';
echo $text."<br><br>";
}
}
・Noticeエラーを回避してarrayから値を取得するいくつかの例
遭遇例2
Noticeが表示されてしまうコード
RSS取得
// Atom取得
if($rssdata->entry){
//中略
}
// rss1.0取得
elseif($rssdata->item){
//中略
}
// RSS2.0取得
elseif($rssdata->channel->item){
対応例2
PHP7以上で使用可能なnull合体演算子(??)を使用
// Atom取得
if($rssdata->entry ?? ''){
//中略
}
// rss1.0取得
elseif($rssdata->item ?? ''){
//中略
}
// RSS2.0取得
elseif($rssdata->channel->item ?? ''){