数ヶ月前、静的メソッドが呼び出されるたびに呼び出されるPHP関数について読みました。これは、クラスのインスタンスがインスタンス化されたときに呼び出される__construct
関数と同様です。しかし、私はPHPでこの機能をどのように機能させるのか分からないようです。そのような機能はありますか?PHPの静的メソッドのコンストラクタ代替
答えて
あなたは__callStatic()で再生すると、このような何か行うことができます:「_」によって先行された任意の方法は、最初の静的「コンストラクタ」を実行します。このコードを使用して
class testObj {
public function __construct() {
}
public static function __callStatic($name, $arguments) {
$name = substr($name, 1);
if(method_exists("testObj", $name)) {
echo "Calling static method '$name'<br/>";
/**
* You can write here any code you want to be run
* before a static method is called
*/
call_user_func_array(array("testObj", $name), $arguments);
}
}
static public function test($n) {
echo "n * n = " . ($n * $n);
}
}
/**
* This will go through the static 'constructor' and then call the method
*/
testObj::_test(20);
/**
* This will go directly to the method
*/
testObj::test(20);
を。 これは単なる基本的な例ですが、__callStatic
を使用すると効果的です。
幸運を祈る!
__callStatic()はあなたが参照しているメソッドですか? __callStatic(...
私はこれが私が探している方法ではないことに恐れています。お返事をありがとうございます。 –
を呼び出し、未定義の静的メソッドを処理するための魔法の方法であると思われるので)、しかし、おそらく
http://www.php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods
ないと呼ばれている:私はちょうどPHPマニュアルでこれを見つけましたクラスの既存の静的メソッドを呼び出さないたびに呼び出されます。
私はPHPマニュアルの中でこのメソッドを覚えましたが、あなたが言及したように、存在しない静的メソッドが呼び出されたときにだけ呼び出されます。 –
- 1. 静的メソッドまたはOO代替?
- 2. 静的メソッドのクラスのコンストラクタ
- 3. PHPの静的メソッド
- 4. PHPは静的メソッド
- 5. PHPのコンストラクタと静的関数
- 6. 静的メソッドのPHP call_user_func
- 7. PHPの静的メソッド/ファンクション
- 8. サファリのFile()コンストラクタの代替
- 9. PHP静的オブジェクトとメソッド
- 10. dojo.xhrGet()メソッドの代替メソッド
- 11. WebClient.OpenReadの代替メソッド
- 12. クラスキャストの代替メソッド
- 13. PHPの継承と静的メソッドとプロパティ
- 14. 静的コンストラクタの例外
- 15. Asp.Net Mvcコントローラの静的コンストラクタ
- 16. C#静的コンストラクタの順序
- 17. Javascript ES6の静的コンストラクタ
- 18. プライベートvs .Netの静的コンストラクタ
- 19. ThreadLocksと静的コンストラクタ
- 20. java.util.DateのsetHours()の代替メソッド?
- 21. PHPシリアライズの代替
- 22. PHP代替のForeach?
- 23. GUI getメソッドの代替?
- 24. 静的クラスと静的メソッド
- 25. PHP Tidy:tidy_setopt()代替?
- 26. 静的メソッドと静的変数のjava
- 27. 静的/非静的メソッドの問題
- 28. PHP - 静的メソッドと非静的メソッドを宣言できますか?
- 29. ジェネリッククラスの静的メソッド?
- 30. Javaの静的メソッド
それは私が望んだものではありませんが、私が探しているものに最も近いと思います。ありがとう、アディ。 –
問題はありません、私は助けて願っています。 –