php中static关键字的理解-php教程

资源魔 36 0
函数内的static变量

static动态变量的了解

动态变量 类型阐明符是static。

动态变量属于动态存储形式,其存储空间为内存中的动态数据区(正在 动态存储区内调配存储单位),该区域中的数据正在整个顺序的运转时期不断占用这些存储空间(正在顺序整个运转时期都没有开释),也能够以为是其内存地点没有变,直 到整个顺序运转完结(相同,而auto主动变量,即静态部分变量,属于静态存储种别,占静态存储空间,函数挪用完结后即开释)。动态变量虽正在顺序的整个执行进程中始终存正在,然而正在它作用域以外不克不及应用。

另外,属于动态存储形式的量纷歧定就是动态变量。 例如:内部变量虽属于动态存储形式,但纷歧定是动态变量,必需由 static加以界说后能力成为动态内部变量,或称动态全局变量。

一切的全局变量都是动态变量,而部分变量只有界说时加之类型润饰符static,才为部分动态变量。

动态变量能够正在任何能够请求之处请求,一旦请求胜利后,它将再也不承受其余的一样请求。

动态变量并非说其就不克不及扭转值,不克不及扭转值的量叫常量。 其领有的值是可变的 ,并且它会放弃最新的值。说其动态,是由于它没有会跟着函数的挪用以及加入而发作变动。即前次挪用函数的时分,假如咱们给动态变量付与某个值的话,下次函数挪用时,这个值放弃没有变。

函数内动态变量

static usage

1,请看上面这个例子:

function doStuff(&$cache) {
    static $cache = null;
    if ($cache === null) {
        echo $cache = '%heavy database stuff or something%';
    }
}
$cache = 'not null';
doStuff($cache);
// Output
%heavy database stuff or something%

从下面的例子能够看出,static要害字影响了援用通报,即便咱们应用了&来试图扭转变量$cache的值以及地点,依然没有影响doStuff()函数中的if判别;

并且,正在doStuff()函数中,动态变量$cache并非不成扭转的,$cache从null变为了%heavy database stuff or something%;

类中的动态办法以及属性

● 咱们把类当成天生工具的模板,把工具作为流动组件,实例化一个类,失去一个工具,而后拜访这个工具的办法以及属性。

例如 $foo = new Foo(); $foo就是类Foo实例化后的工具。

● 动态办法是以类作为作用域的函数,咱们能够没有经实例化,间接拜访动态办法.

例如:

class Foo()
{
    public static function a(){}
}
// 拜访a();
Foo::a();

● 动态办法不克不及拜访这个类中的一般属性以及办法,由于那些属性以及办法属于一个工具,而动态办法以及属性又称为类变量的办法。

● 正在以后类(非子类)中拜访动态办法或属性应用self::method(),note: self能够挪用父类的动态办法以及属性;

提早动态绑定

先看个例子

header("Content-type: text/html; charset=utf-8");
class A 
{
    public static function aa()
    {
        echo "非提早动态绑定<br>";
    }
    
    public static function bb()
    {
        echo self::aa();  // Output 非提早动态绑定
        echo static::aa(); // Output 提早动态绑定
    }
}
class B extends A
{
    public static function aa()
    {
        echo "提早动态绑定";
    }
    
    public static function cc()
    {
        echo self::bb();
    }
}
B::bb();
// Output
非提早动态绑定
提早动态绑定

应用self要害字,指是以后类(A),因而猎取的也就是类A的aa()办法的前往值;

php5.3之后,咱们能够应用static来猎取子类的aa()办法,它指的的被挪用的类。

总结:

static要害字的提早绑定有不少用处,普通正在名目中可边做边总结。

以上就是php中static要害字的了解的具体内容,更多请存眷资源魔其它相干文章!

标签: php php开发教程 php开发资料 php开发自学 Static

抱歉,评论功能暂时关闭!