PHP で静的メソッドを使用する場合のいくつかの注意事項、php static_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:18:52
オリジナル
811 人が閲覧しました

PHP で静的メソッド (php static) を使用する際に注意すべき点がいくつかあります

この記事の例では、PHP で静的メソッドを使用する際の一般的な注意事項をいくつか紹介します。参考のためにみんなで共有してください。具体的な方法は以下の通りです

1. クラス内のメソッドが静的として宣言されていない場合でも、変更可能なクラス メンバー変数を使用しない場合でも、演算子:: ; を使用して外部から呼び出すことができます。 2.

静的に呼び出される (:: 演算子を使用して) メソッド内の $this の値は、それを定義するクラスではなく、呼び出しのコンテキストによって決定されます。

たとえば、次のコード: リーリー

このコードの出力は何ですか? TestClass1 からのnormal_v
が正しい出力であることがわかりました。

TestClass2 のnormal_v
TestClass1 の STATIC_V

注: test_func1() は TestClass1 で定義されていますが、TestClass2 で呼び出され、その内部 $this 変数は TestClass2 によって決定されます!

実際、これら 2 つのクラス間の関係は「双方向の関連付け」である必要があります。

興味のある友人は、この記事の例をテストして実行してみると、新たな成果が得られると信じています。

phpの静的メソッドの問題

self:: は、このクラスで静的メソッド get() を呼び出すことを意味します。これは、静的メソッドでは静的メソッドのみを呼び出すことができ、インスタンス メソッドを呼び出すことができないためです。
phpの静的メソッド呼び出しの問題


PHP は現在、静的クラスの 2 つのメソッドを使用できます。これは、クラスを初期化せずに呼び出すためだけの便宜のためです。

でも、書き方が間違っていたら。静的クラスは静的に呼び出すことができなくなります。
間違いの例を教えてください。
class Cat {

}
class Hypnotic_Cat extends Cat
{
public $string = "猫に催眠術をかけました。\r\n";
function Hypnotic_Cat()
{
}
public static function 催眠術()
{
echo self::$string;
}
}
Hypnotic_Cat::催眠ize();
$催眠_cat = new Hypnotic_Cat();
$催眠_cat->催眠術();
?>

正しい例

class Cat {
}
class Hypnotic_Cat extends Cat
{
public static $string = "猫は催眠術をかけられました。\r\n";
function Hypnotic_Cat()
{
}
public static関数 催眠術()
{
エコー self::$string;
}
}
Hypnotic_Cat:: 催眠術();
$催眠_cat = 新しい Hypnotic_Cat();
$催眠_cat->催眠術();
?>




http://www.bkjia.com/PHPjc/879726.html

www.bkjia.com本当

http://www.bkjia.com/PHPjc/879726.html技術記事 PHP で静的メソッドを使用する場合のいくつかの注意事項 PHP static この記事では、PHP で静的メソッドを使用する場合の一般的な注意事項をいくつか紹介します。参考のためにみんなで共有してください。具体的な方法は以下の通りです...
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート