static关键字用来修饰属性、方法,称这些属性、方法为静态属性、静态方法。
static的方法,只能访问static的属性,不能类访问非静态的属性。不过调用非静态方法不可以使用this关键字调用非静态方法,而必须使用self::关键字,并且被调用的非静态方法中不能有非静态变量,一般情况静态方法尽量不要调用非静态方法。
static的属性,在内存中只有一份,为所有的实例共用。
可以使用self:: 关键字访问当前类的静态成员。
非静态方法调用静态变量
立即学习“PHP免费学习笔记(深入)”;
<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><?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><?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><?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>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i ').text(i));
};
$numbering.fadeIn(1700);
});
});
以上就介绍了php学习之旅:static变量与方法,包括了静态方法,静态属性,静态变量方面的内容,希望对PHP教程有兴趣的朋友有所帮助。











