##動的なメソッドをインスタンス化しなくても実行できてしまう
LaravelにてModelクラスを継承したItemClassでidで検索するメソッドを記述しました。
whereを使用した以下のソースコードになります。
class Item extends Model { /** * アイテムID検索 * @param $id * @return Item|mixed */ public function itemSearchById($id) { return Item::where('id',$id); } }
whereはstaticメソッドではないため
PHPstormに下記のような警告が出ています。
Non-static method 'where' should not be called statically, but class has __magic more...
しかしこの関数を実際に実行すると問題なく動きます。
動ける理由を教えていただ期待です。
##やったこと
- 自分で同じクラス内でstaticではないメソッドを実行するとstaticじゃないメソッドが呼ばれたためエラーになることを確認した。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/09 04:00
2019/04/10 05:37