PHPの型宣言でObjectタイプヒントがうまくいかない!
gettypeメソッド
で間違いなくobject型
で有ることを確認
public function hoge(object $object) {
// 何かの処理
}
エラーになる
local.ERROR: Type error: Argument 1 passed to ...
何故だ!!
型宣言したいのに!
PHP7.2.0から対応だった
php -v
で確認すると7.0系だった。
原文
PHP 7.2.0 comes with numerous improvements and new features such as
- Convert numeric keys in object/array casts
- Counting of non-countable objects
- Object typehint
- HashContext as Object
- Argon2 in password hash
- Improve TLS constants to sane values
- Mcrypt extension removed
- New sodium extension
Google翻訳
PHP 7.2.0には、次のような多数の改良と新機能が付属しています。
- オブジェクト/配列キャストの数値キーを変換する
- カウント不能オブジェクトのカウント
- オブジェクトタイプヒント
- オブジェクトとしてのHashContext
- パスワードハッシュ内のArgon2
- TLS定数を正しい値に改善
- Mcryptエクステンションを削除
- 新しいナトリウム増量