php Static關(guān)鍵字實(shí)用方法
更新時(shí)間:2010年06月04日 18:09:23 作者:
聲明類成員或方法為static,就可以不實(shí)例化類而直接訪問。不能通過一個(gè)對象來訪問其中的靜態(tài)成員(靜態(tài)方法除外)。
為了兼容PHP4,如果沒有指定“可見性”,屬性和方法默認(rèn)為public。
由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量$this在靜態(tài)方法中不可用。
靜態(tài)屬性也可以由對象通過->操作符來訪問。
用::方式調(diào)用一個(gè)非靜態(tài)方法會導(dǎo)致一個(gè)E_STRICT級別的錯(cuò)誤。
就像其它所有的PHP靜態(tài)變量一樣,靜態(tài)屬性只能被初始化為一個(gè)字符值或一個(gè)常量,不能使用表達(dá)式。 所以你可以把靜態(tài)屬性初始化為整型或數(shù)組,但不能指向另一個(gè)變量或函數(shù)返回值,也不能指向一個(gè)對象。
PHP5.3.0之后,我們可以用一個(gè)變量來動態(tài)調(diào)用類。但該變量的值不能為關(guān)鍵字self, parent 或static。
<?php
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之后可以動態(tài)調(diào)用
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
PHP里邊用Static關(guān)鍵字來定義靜態(tài)屬性和方法.
實(shí)例一:靜態(tài)屬性的引用方法
<?php
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static聲明靜態(tài)屬性
static$age=25;//static聲明靜態(tài)屬性
static$address="北京";//static聲明靜態(tài)屬性
function song(){
echo "My name is : ".self::$name."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I am ".self::$age."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I live in ".self::$address."<br>";//類內(nèi)部:通過self 類訪問靜態(tài)屬性
}
}
echoperson::$name."<br>";//類外部:通過類名person訪問靜態(tài)屬性
echoperson::$age."<br>";//類外部:通過類名person訪問靜態(tài)屬性
echoperson::$address."<br>";//類外部:通過類名person訪問靜態(tài)屬性
?>
實(shí)例二:靜態(tài)方法的引用方法
<?php
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static聲明靜態(tài)屬性
static$age=25;//static聲明靜態(tài)屬性
static$address="北京";//static聲明靜態(tài)屬性
staticfunction song(){ //聲明靜態(tài)方法song
echo "My name is : ".self::$name."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I am ".self::$age."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I live in ".self::$address."<br>";//類內(nèi)部:通過self 類訪問靜態(tài)屬性
}
}
person::song()."<br>";//類外部:通過類名person訪問靜態(tài)方法
?>
由于靜態(tài)方法不需要通過對象即可調(diào)用,所以偽變量$this在靜態(tài)方法中不可用。
靜態(tài)屬性也可以由對象通過->操作符來訪問。
用::方式調(diào)用一個(gè)非靜態(tài)方法會導(dǎo)致一個(gè)E_STRICT級別的錯(cuò)誤。
就像其它所有的PHP靜態(tài)變量一樣,靜態(tài)屬性只能被初始化為一個(gè)字符值或一個(gè)常量,不能使用表達(dá)式。 所以你可以把靜態(tài)屬性初始化為整型或數(shù)組,但不能指向另一個(gè)變量或函數(shù)返回值,也不能指向一個(gè)對象。
PHP5.3.0之后,我們可以用一個(gè)變量來動態(tài)調(diào)用類。但該變量的值不能為關(guān)鍵字self, parent 或static。
復(fù)制代碼 代碼如下:
<?php
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之后可以動態(tài)調(diào)用
print Bar::$my_static . "\n";
$bar = new Bar();
print $bar->fooStatic() . "\n";
?>
PHP里邊用Static關(guān)鍵字來定義靜態(tài)屬性和方法.
實(shí)例一:靜態(tài)屬性的引用方法
復(fù)制代碼 代碼如下:
<?php
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static聲明靜態(tài)屬性
static$age=25;//static聲明靜態(tài)屬性
static$address="北京";//static聲明靜態(tài)屬性
function song(){
echo "My name is : ".self::$name."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I am ".self::$age."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I live in ".self::$address."<br>";//類內(nèi)部:通過self 類訪問靜態(tài)屬性
}
}
echoperson::$name."<br>";//類外部:通過類名person訪問靜態(tài)屬性
echoperson::$age."<br>";//類外部:通過類名person訪問靜態(tài)屬性
echoperson::$address."<br>";//類外部:通過類名person訪問靜態(tài)屬性
?>
實(shí)例二:靜態(tài)方法的引用方法
復(fù)制代碼 代碼如下:
<?php
/*
*author:ajax123
*qq:283400245
*/
class person{
static$name="ajax123";//static聲明靜態(tài)屬性
static$age=25;//static聲明靜態(tài)屬性
static$address="北京";//static聲明靜態(tài)屬性
staticfunction song(){ //聲明靜態(tài)方法song
echo "My name is : ".self::$name."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I am ".self::$age."<br>";//類內(nèi)部:通過通過self 類訪問靜態(tài)屬性
echo "I live in ".self::$address."<br>";//類內(nèi)部:通過self 類訪問靜態(tài)屬性
}
}
person::song()."<br>";//類外部:通過類名person訪問靜態(tài)方法
?>
您可能感興趣的文章:
- 深入理解PHP中的static和yield關(guān)鍵字
- php類中的$this,static,final,const,self這幾個(gè)關(guān)鍵字使用方法
- PHP中static關(guān)鍵字以及與self關(guān)鍵字的區(qū)別
- Java中static關(guān)鍵字的作用和用法詳細(xì)介紹
- C/C++中static,const,inline三種關(guān)鍵字詳細(xì)總結(jié)
- static關(guān)鍵字的作用詳解
- php面向?qū)ο笕ヂ?(十) final static const關(guān)鍵字的使用
- 深入淺析c/c++ 中的static關(guān)鍵字
相關(guān)文章
用Apache反向代理設(shè)置對外的WWW和文件服務(wù)器
用Apache反向代理設(shè)置對外的WWW和文件服務(wù)器...2006-10-10PHP的mysqli_sqlstate()函數(shù)講解
今天小編就為大家分享一篇關(guān)于PHP的mysqli_sqlstate()函數(shù)講解,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01[PHP] 《PHP邊學(xué)邊教》(01.開篇——準(zhǔn)備工作)
[PHP] 《PHP邊學(xué)邊教》(01.開篇——準(zhǔn)備工作)...2006-12-12