static关键字用来修饰属性、方法,称这些属性、方法为静态属性、静态方法。
static的方法,只能访问static的属性,不能类访问非静态的属性。不过调用非静态方法不可以使用this关键字调用非静态方法,而必须使用self::关键字,并且被调用的非静态方法中不能有非静态变量,一般情况静态方法尽量不要调用非静态方法。
static的属性,在内存中只有一份,为所有的实例共用。
可以使用self:: 关键字访问当前类的静态成员。
非静态方法调用静态变量
<code><span><?php </span><span><span>class</span><span>test</span>{</span><span>public</span><span>static</span><span>$pi</span>=<span>3.14</span>; <span><span>function</span><span>display</span><span>()</span> {</span><span>return</span><span>self</span>::<span>$pi</span>; } } <span>$test</span>=<span>new</span> test(); <span>echo</span><span>'<br>'</span>.<span>$test</span>->display(); <span>?></span></span></code>
静态方法调用静态变量
<code><span><?php </span><span><span>class</span><span>test</span>{</span><span>public</span><span>static</span><span>$pi</span>=<span>3.14</span>; <span>static</span><span><span>function</span><span>display_static</span><span>()</span> {</span><span>return</span><span>self</span>::<span>$pi</span>; } } <span>$test</span>=<span>new</span> test(); <span>echo</span><span>'<br>'</span>.<span>$test</span>::display_static(); <span>?></span></span></code>
非静态方法调用静态方法
<code><span><?php </span><span><span>class</span><span>test</span>{</span><span>public</span><span>static</span><span>$pi</span>=<span>3.14</span>; <span>static</span><span><span>function</span><span>display_static</span><span>()</span> {</span><span>return</span><span>self</span>::<span>$pi</span>; } <span><span>function</span><span>display</span><span>()</span> {</span><span>return</span><span>self</span>::display_static(); } } <span>$test</span>=<span>new</span> test(); <span>echo</span><span>'<br>'</span>.<span>$test</span>->display(); <span>?></span></span></code>
静态方法调用非静态方法(实际就相当于将非静态方法在调用过程中转变为静态方法来处理了)
<code><span><?php </span><span><span>class</span><span>test</span>{</span><span>public</span><span>static</span><span>$pi</span>=<span>3.14</span>; <span>static</span><span><span>function</span><span>display_static</span><span>()</span> {</span><span>return</span><span>self</span>::display(); } <span><span>function</span><span>display</span><span>()</span> {</span><span>return</span><span>self</span>::<span>$pi</span>; } } <span>$test</span>=<span>new</span> test(); <span>echo</span><span>'<br>'</span>.<span>$test</span>::display_static(); <span>?></span></span></code>
以上就介绍了php学习之旅:static变量与方法,包括了静态方法,静态属性,静态变量方面的内容,希望对PHP教程有兴趣的朋友有所帮助。