php Staticキーワードの実用的な方法

2846 ワード

PHP 4と互換性を持つには、[可視性](Visibility)が指定されていない場合、プロパティとメソッドのデフォルトはpublicです.
静的メソッドはオブジェクトを介して呼び出す必要がないため、擬似変数$thisは静的メソッドでは使用できません.
静的プロパティは、->オペレータを使用してオブジェクトからアクセスすることもできます.
使用::非静的メソッドを呼び出すとE_STRICTレベルのエラー.
他のすべてのPHP静的変数と同様に、静的属性は1文字値または定数にのみ初期化され、式は使用できません.静的プロパティを整数または配列に初期化できますが、別の変数や関数の戻り値を指すことも、オブジェクトを指すこともできません.
PHP5.3.0以降、クラスを動的に呼び出すために変数を使用できます.ただし、この変数の値はキーワードself、parent、staticではありません.
 
  
class Foo
{
public static $my_static = 'foo';
public function staticValue() {
return self::$my_static;
}
}
class Bar extends Foo
{
public function fooStatic() {
return parent::$my_static;
}
}
print Foo::$my_static . "
";
$foo = new Foo();
print $foo->staticValue() . "
";
print $foo->my_static . "
"; // Undefined "Property" my_static
print $foo::$my_static . "
";
$classname = 'Foo';
print $classname::$my_static . "
"; // PHP 5.3.0
print Bar::$my_static . "
";
$bar = new Bar();
print $bar->fooStatic() . "
";
?>

PHPには、Staticキーで静的属性と方法を定義する.
例1:静的属性の参照方法
 
  
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static
static$age=25;//static
static$address=" ";//static
function song(){
echo "My name is : ".self::$name."
";// : self
echo "I am ".self::$age."
";// : self
echo "I live in ".self::$address."
";// : self
}
}
echoperson::$name."
";// : person
echoperson::$age."
";// : person
echoperson::$address."
";// : person
?>

例2:静的メソッドの参照方法
 
  
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static
static$age=25;//static
static$address=" ";//static
staticfunction song(){ // song
echo "My name is : ".self::$name."
";// : self
echo "I am ".self::$age."
";// : self
echo "I live in ".self::$address."
";// : self
}
}
person::song()."
";// : person
?>