php访问类常量(php访问类的方法)
华为云服务器特价优惠火热进行中! 2核2G2兆仅需 38 元;4核4G3兆仅需 79 元。购买时间越长越优惠!更多配置及优惠价格请咨询客服。
合作流程: |
今天给各位分享php访问类常量的知识,其中也会对php访问类的方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
微信号:cloud7591如需了解更多,欢迎添加客服微信咨询。
复制微信号
本文目录一览:
PHP中,可以使用什么实现在不创建对象的情况下调用类中的常量,变量和方法
你好!
类中的变量和方法改成静态变量和静态方法(static)
就可以不创建对象直接通过类名访问
如Person::$name
常量本身就可以通过类名直接调用
仅代表个人观点,不喜勿喷,谢谢。
PHP 引入命名空间,类,方法,常量
PHP 引入命名空间,如果想要访问命名空间中的类,方法,常量,则用引入的命名空间的最后一个空间名去限定
如果引入的直接是类,方法,常量,则可以直接使用,并且当前空间不能定义同名的类,方法,常量
当前命名空间有同名的定义,则引入的类,方法,常量要用别名 as 别名
namespace 可以区分类,函数,const常量 不能区分define常量
PHP扩展 怎么访问常量属性
访问器属性不包含数据值;它们包含一对getter和setter函数(不过,这两个函数都不是必须的)。在读取访问器属性时,会调用getter函数,这个函数负责返回有效的值;在写入访问器属性时,会调用setter函数并传入新值,这个函数负责决定如何处理数据。访问器属性有如下4个特性。
[[Configurable]]:表示能否通过delete删除属性从而重新定义属性,能否修改属性的特性,或者能否把属性修改为数据属性。对于直接在对象上定义的属性,这个特性的默认值为true。
[[Enumerable]]:表示能否通过for-in循环返回属性。对于直接在对象上定义的属性,这个特性的默认值为true。
[[Get]]:在读取属性时调用的函数。默认值为undefined。
[[Set]]:在写入属性时调用的函数。默认值为undefined。
访问器属性不能直接定义,必须使用Object.defineProperty()来定义。例如:
var
book
=
{
_year:2004,
edition:1
};
Object.defineProperty(book,"year",{
get:function(){
return
this._year;
},
set:function(newValue){
if(newValue2004)
{
this._year
=
newValue;
this.edition
+=
newValue-2004;
}
}
});
book.year
=
2005;
alert(book.edition);//2
以上代码创建了一个book对象,并给它定义两个默认的属性:_year和edition。_year前面的下划线是一种常用的记号,用于表示只能通过对象方法访问的属性。而访问器属性year则包含一个getter函数和一个setter函数。getter函数返回_year的值,setter函数通过计算来确定正确的版本。因此,把year属性修改为2005会导致_year变成2005,而edition变为2。这是使用访问器属性的常见方式,即设置一个属性的值会导致其他属性发生变化。
不一定非要同时制定getter和setter。只指定getter意味着属性不能写,尝试写入属性会被忽略。在严格模式下,尝试写入只指定了getter函数的属性会抛出错误。类似的,只指定setter函数的属性也不能读,否则在非严格模式下会返回undefined,而在严格模式下会抛出错误。
支持ECMAScript
5的这个方法的浏览器有IE9+(IE8只是部分实现)、FF4+、Safari5+、Opera12+和Chrome。在这个方法之前,要创建访问器属性,一般都使用两个标准的方法:_defineGetter_()和_defineSetter_()。这两个方法最初是由Firefox引入的,后来Safari3、Chrome1和Opera9.5也给出了相同的实现。使用这两个遗留的方法,可以像下面这样重写前面的例子。
var
book
={
_year=2004,
edition:1
};
//定义访问器的旧方法
book._defineGetter_("year",function(){
return
this._year;
});
book._defineSetter_("year",function(){
if(newValue2004){
this._year
=
newValue;
this.edition
+=
newValue
-
2004;
}
});
book.year=2005;
alert(book.edition);//2
在不支持Object.defineProperty()方法的浏览器中不能修改[[Configurable]]和[[Enumerable]]。
php 外部可以调用类中的常量吗?
常量属性不能使用对象访问,仅能使用类访问,在类本体内,可以使用“self::常量名”,在类本体外可以使用“类名::常量名”。
?php
class Foo{
const con_var="常量属性的值不能被修改br /";
public function method_a(){
echo (self::con_var);
}
}
echo(Foo::con_var);
$myFoo=new Foo();
echo ($myFoo-method_a());
?

php访问类常量的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于php访问类的方法、php访问类常量的信息别忘了在本站进行查找喔。
