ホームページ  >  記事  >  バックエンド開発  >  PHP のオーバーロードの概要

PHP のオーバーロードの概要

小云云
小云云オリジナル
2018-03-20 13:46:101781ブラウズ

PHP が提供する「オーバーロード」とは、クラスの属性とメソッドを動的に「作成」することを指します。私たちはこれを魔法の方法で行います。 オーバーロードされたメソッドは、現在の環境で未定義またはアクセスできないクラス プロパティまたはメソッドが呼び出されるときに呼び出されます。 オーバーロードされたメソッドはすべて public に宣言する必要があります。

**注:** PHP の「オーバーロード」は、他のほとんどのオブジェクト指向言語とは異なります。従来の「オーバーロード」は、同じ名前を持つ複数のクラス メソッドを提供するために使用されますが、各メソッドのパラメーターの型と数は異なります。

1. プロパティのオーバーロード

public void __set ( string $name , mixed $value )
public mixed __get ( string $name )
public bool __isset ( string $name )
public void __unset ( string $name )

アクセスできないプロパティに値を代入する場合、__set() が呼び出されます。
アクセスできないプロパティの値を読み取る場合、__get() が呼び出されます。
__isset() は、アクセスできないプロパティに対して isset() または empty() が呼び出されたときに呼び出されます。
アクセスできないプロパティに対して unset() が呼び出される場合、 __unset() が呼び出されます。
パラメータ $name は、操作される変数の名前を指します。 __set() メソッドの

name 変数の値。
プロパティのオーバーロードはオブジェクト内でのみ実行できます。静的メソッドでは、これらのマジック メソッドは呼び出されません。したがって、これらのメソッドはいずれも静的として宣言できません。 PHP 5.3.0 では、これらのマジック メソッドを静的として定義すると警告が生成されます。

2. メソッドのオーバーロード

public mixed __call ( string $name , array $arguments )
public static mixed __callStatic ( string $name , array $arguments )

オブジェクト内でアクセスできないメソッドが呼び出されるとき、__call() が呼び出されます。
静的コンテキストでアクセスできないメソッドを呼び出すと、__callStatic() が呼び出されます。

arguments パラメーターは、メソッド $name に渡されるパラメーターを含む列挙配列です。

PHP が提供する「オーバーロード」とは、クラスの属性とメソッドを動的に「作成」することを指します。私たちはこれを魔法の方法で行います。
現在の環境で未定義またはアクセスできないクラス属性またはメソッドを呼び出すときに、オーバーロードされたメソッドが呼び出されます。
オーバーロードされたメソッドはすべて public に宣言する必要があります。
**注意:** PHP の「オーバーロード」は、他のほとんどのオブジェクト指向言語とは異なります。従来の「オーバーロード」は、同じ名前を持つ複数のクラス メソッドを提供するために使用されますが、各メソッドのパラメーターの型と数は異なります。

関連する推奨事項:

phpオーバーロード配列演算子_PHPチュートリアル

phpオーバーロード配列演算子

php継承、phpオーバーロードにおけるメソッドのオーバーロード(上書き)の適用事例

以上がPHP のオーバーロードの概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。