| ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot |
クラスとオブジェクトの変更点instanceof、is_a()、 is_subclass_of() および catch
PHP 5.0 で is_a() は非推奨となり、instanceof
演算子に置き換えられました。
instanceof の初期の実装にはいくつかの問題があり、クラスを探すために
__autoload() に頼っていました。もしクラスが存在しなかった場合、
__autoload() に失敗するために instanceof
は致命的な PHP 5.1 では、これらの関数や演算子は __autoload() をコールしません。 また、PHP 5.0.x ではこの問題の回避策として class_exists() が使用可能です。 大きな問題ではありませんが、この回避策はもはや必要ありません。 抽象 private メソッドPHP 5.0.0 から PHP 5.0.4 まででは抽象 private メソッドがサポートされていましたが、 これは禁止されました。なぜなら private と abstract とは決して両立することのない概念だからです。 インターフェイスのアクセス修飾子
PHP 5.0 では、インターフェイス内での関数定義はクラス内での関数定義と同じように扱われました。
2004 年 10 月以降はそうではなくなり、インターフェイス内での関数定義では
public 以外のアクセス修飾子を指定できなくなりました。
そして 2005 年 4 月、PHP 5.0b1 のリリース前に、static
修飾子も許可されるようになりました。しかし、protected 修飾子や
private 修飾子を指定しようとすると
継承規則の変更PHP 5.0 では、基底クラスの同名の関数定義と一致しない関数を 派生クラスの中で定義することが可能でした。たとえば以下のようなものです。
PHP 5.1.x では、このコードは
<?php クラス定数PHP 5.0.x では、以下のコードは正しいものでした。
PHP 5.1.x では、クラス定数を再定義すると、致命的なエラー
<?php |
各種マニュアル:
PHPマニュアル |
PEARマニュアル |
Smarty(英語)マニュアル |
PHP-GTKマニュアル |
「クラスとオブジェクトの変更点」をGoogle検索
|