公共和静态的区别?
静态意味着它可以在不实例化类访问公共交通工具。这对常量很有用。
静态方法需要对对象的状态没有影响。除参数外,它们还可以有局部变量。
内从http://php.net/manual/en/language.oop5.static.php
Declaring class properties or methods as static makes them accessible without needing an instantiation of the class. A property declared as static can not be accessed with an instantiated class object (though a static method can).
public:公共声明的项目可以随处访问。
受保护:受保护的限制访问继承和父类 类(以及定义项目的类)。
私人:私人限制仅限定义 该项目的类的可见性。
static:一个静态变量只存在于本地函数范围 中,但是当程序执行离开这个范围时它不会丢失它的值。
final:Final关键字可以防止子类通过为final定义前缀final操作而覆盖 方法。如果班级本身是 被定义为最终,那么它不能被扩展。
瞬态:瞬态变量是一个变量,可能不是 被序列化。
易失性:可能会同时修改多个线程的变量 线程应声明为volatile。声明为易变的变量 不会被编译器优化,因为它们的值可随时在 处更改。
一些例子...... 当使用static关键字,那么我们就不能使用$这个..
class Foo{
private $foo='private';
private function priv_func(){
echo 'priv_method';
}
public static function ger(){
echo $this->foo;
$this->priv_func();
}
}
//class Zero extends Foo{};
$obj=new Foo;
$obj->ger();
Fatal error: Using $this when not in object context in
您也可以使用'self'来访问同一个类中的静态方法和静态变量。 'self :: priv_func();' – 2017-08-08 10:33:52
我觉得如果这个例子有更多的解释是真的帮助我,因为在这个页面上没有任何其他的例子。不幸的是,我不太明白你想教我什么。 – Eoin 2018-03-03 01:27:49
公共方法和属性只能访问类实例化后,并通过被称为“ - >”符号。公共静态方法和属性可以在不需要实例化类的情况下被访问,并且可以通过“::”来调用。 – arma 2011-04-03 02:14:27