php Static關鍵字實用方法_PHP教程

來源:互聯網
上載者:User
為了相容PHP4,如果沒有指定“可見度”,屬性和方法預設為public。
由於靜態方法不需要通過對象即可調用,所以偽變數$this在靜態方法中不可用。
靜態屬性也可以由對象通過->操作符來訪問。
用::方式調用一個非靜態方法會導致一個E_STRICT層級的錯誤。
就像其它所有的PHP靜態變數一樣,靜態屬性只能被初始化為一個字元值或一個常量,不能使用運算式。 所以你可以把靜態屬性初始化為整型或數組,但不能指向另一個變數或函數傳回值,也不能指向一個對象。
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 . "\n";
$foo = new Foo();
print $foo->staticValue() . "\n";
print $foo->my_static . "\n"; // Undefined "Property" my_static
print $foo::$my_static . "\n";
$classname = 'Foo';
print $classname::$my_static . "\n"; // PHP 5.3.0之後可以動態調用
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>

PHP裡邊用Static關鍵字來定義靜態屬性和方法.

執行個體一:靜態屬性的引用方法
複製代碼 代碼如下:
/*
*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訪問靜態屬性
?>


執行個體二:靜態方法的引用方法

複製代碼 代碼如下:
/*
*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訪問靜態方法
?>

http://www.bkjia.com/PHPjc/322005.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/322005.htmlTechArticle為了相容PHP4,如果沒有指定“可見度”,屬性和方法預設為public。 由於靜態方法不需要通過對象即可調用,所以偽變數$this在靜態方法中不...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.