phpでxpathを使っている時に発生したエラー。
foreachでループをしていて、特定のclassの場合の時にifを使って処理しようとしたところ、このようなエラーが。対応方法がわかったので、メモがてら。それにしても。。。オブジェクトの操作あたりってややこしいし、初心者向けのサイトがあまり無いような気がしてならないけど。。。
$value->getAttribute(‘class‘)==null はifでは使えない
classがある場合に処理をしたくて、上記のように記載したが、エラーが出る。他の日本語サイトをみたら、使えないのでまずは変数に入れる「$tmp=$value->getAttribute(‘class’)」にしたあと、分岐がどうのって書いてあったが、それでも解決しなかった。
getAttributeが使えるかどうか?という部分で分岐したいがどうもうまくいかない。。調べても出て来ない。
method_existsを使うとチェックができるらしい
海外のプログラミングの質問サイトを見ると、method_exists を使えと書いてあったので、使ってみたところ、無事に解決できた。
サンプルとしては以下のとおり
if(method_exists($value,'getAttribute')&&$value->getAttribute('class')=="hoge_class"){
///実行したい処理
}
無事に解決してよかった。。。