-
- class foo {
- function __call($name,$arguments) {
- print("電話しましたか? 私は $name!
");
- print_r($引数);
- print("
");
- }
-
- function doSecond($arguments)
- {
- print("そうです、$arguments!
"); -
- $test = new foo();
- $test->doFirst('この関数はありません');
- コードをコピーします。
__call は「オーバーロード」アクションを実装します
この特別なメソッドを使用すると、「オーバーロード」アクションを実装できるため、パラメーターを確認し、プライベート メソッドを呼び出して渡すことができます。
例: __call を使用して「オーバーロード」アクションを実装する
class Magic { function __call($name,$arguments) { if($name=='foo') { - if(is_int($arguments[0])) $ this->foo_for_int($arguments[0]);
- if(is_string($arguments[0])) $this->foo_for_string($arguments[0]);
- }
- }
-
- プライベート関数 foo_for_int($ x) {
- print("ああ int!");
- }
- //by bbs.it-home.org
-
- private function foo_for_string($x) {
- print("oh a string!"); }
- }
-
- $test = new Magic();
- $test->foo("3");
- 2. __set と __get の使用法
これは、__set メソッドと __get メソッドを使用して、オブジェクトに存在しない変数やメソッドをキャプチャする優れた方法です。
例: __set と __get
class foo { function __set($name,$val) { print("こんにちは、$name に $val を入れようとしました");
function __get($name) { print("$name "); } } - $test = new foo(); $test->__set('name',' justcoding');
- $test->__get('name');
- ?>
-
-
- コードをコピー
-
-
- PHP プログラミング、特に PHP オブジェクト指向プログラミングでは、__call、__set、_ _get を柔軟に適用します。思わぬサプライズが待っているかもしれないので、皆さんもしっかりと把握しておくことをおすすめします。
-
-
-
-
-
-
-
|