讨论面向对象的静态密钥和PHP中类常量的详细解决方案
没有什么只是找一点PHP在OO数据上看到,访问控制修饰符,自我,父,常量,静态几个关键字,箭头操作符(这本书也这样称呼)。即范围解析运算符->)(即:双冒号),但认为这与面向对象的C #语言是许多相同的,很容易理解,但还是看它在PHP或面向对象的方法应该是。--------------------------------------------------------------------------------
声明静态类的成员和方法,使其不需要类的实例。静态成员的声明不能通过类对象的实例来访问(尽管静态方法可以)。
静态声明必须遵循可见性声明。为了与PHP 4兼容,如果没有声明可见性,则成员和方法将被视为公开声明。
因为静态方法可以调用非对象实例,所以伪变量$不能在声明静态方法中使用。
事实上,静态方法调用的形式是在编译时确定的。当使用必须声明的类名时,该方法是一个被完全识别且没有继承规则的应用程序。当使用必须声明的类名时,该方法得到充分确认,并且不使用继承规则。
如果已经声明了自我,那么当前类解释了自身,它也不适用于继承规则。静态属性不能访问非静态>。用箭头操作符的方法,这将产生一e_strict液位报警。
复制代码代码如下所示:
< PHP
类Foo
{ public static my_static美元= 'foo;
公共功能staticvalue(){ return自::my_static美元;}
}
类栏扩展
{公共函数(){ return foostatic母::my_static美元;}
}
打印foo::my_static美元。;
$ =新富();
印刷美元-> staticvalue foo()。;
打印变量$foo -> my_static。 / / / ;未定义的财产my_static
$ foo::不可能 / / my_static
打印条码::my_static美元。;
新栏();
打印条形码> foostatic(美元)。;
>
复制代码代码如下所示:
静态方法实例(静态方法/实例)
< PHP
类Foo
{ public static函数astaticmethod(){ }
}
::astaticmethod foo();
>
常量可以在每个基类中定义,以保持它不变。当你不使用$符号来声明或使用它时,常量就不同于普通变量。像静态成员一样,常量值不能通过对象的实例来访问(而不是使用$对象:常量)。常量值必须是常量表达式,而不是变量,是类的成员,是数学表达式或函数调用的结果。
复制代码代码如下所示:
< PHP
类
{ const常量='恒值;
功能showconstant(){ echo自::常数。;}
}
Echo MyClass::常数。;
美元类=新MyClass();
美元类-> showconstant(回声); / /美元类::常数;不允许
>