9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PHP7調査(21)E_STRICTの廃止

Posted at

E_STRICTエラーがPHP7から廃止されます。いままでE_STRICTだったものはE_NOTICE、E_WARNING、E_DEPRECATEDのいずれかに引っ越します。

現時点でソースコードをgrepするとまだE_STRICTが数個か残っている状況ですので、完全撤廃できるのかは疑問です。

このことは、たとえば次のようなPHPプログラムで確認できます。

<?php
class Foo {
	public function method() {}
}
class Bar extends Foo {
	public function method($arg) {}
}

これをPHP7で実行すると次のように警告されます。

$ php7 /tmp/foo.php
PHP Warning:  Declaration of Bar::method() should be compatible with Foo::method() in /tmp/foo.php on line 7

これはPHP5まではE_STRICTでした。

$ php5 /tmp/foo.php
PHP Strict Standards:  Declaration of Bar::method() should be compatible with Foo::method() in /tmp/foo.php on line 7

注意点

ただし、php.iniの設定で次のようにE_STRICTを無効にして利用している人もいそうです。そういう人にとっては、PHP5まで何もエラーが無かったコードでPHP7から急に怒られるように映るかもしれませんね。

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

参照

9
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?