0 0 4 3 ● 声明常量和属性
本帖最后由 不二如是 于 2018-11-7 15:33 编辑写这篇帖子的时候,刚好立冬,记得添衣裳哦{:10_278:}
在类中不必直接(显示)声明属性,因为初次使用它们时可以被间接(隐式)定义。
为了解释清楚,我们用代码说话:
<?php
$object1 = new User();
$object1->name = "小甲鱼";
echo $object1->name;
class User{}
}
?>
这段代码可以正确输出“小甲鱼”,因为PHP间接地声明$object->name 。
但是这种编程方式会导致很难发现的bug,因为name属性是在类外声明的。
很危险,把核心变量仍在外面,很容易被“污染”(该值),建议养成在类中声明属性的习惯。
同样,在类中声明一个属性时,可以赋给该属性一个默认值,这个值必须是常量。
不能是函数或表达式的计算结果,举一个错误示范:
**** Hidden Message *****
后面两种方式由于调用了函数和表达式所有都无效。
声明常量
如同可以用define函数创建全局变量一样,也可以在类内定义常量。
通常做法是使用大写字母来凸显它们。
还是一段代码演示:
<?php
Myequal::show();
class Myequal{
const API1 = 0;
const API2 = "小甲鱼";
static function show(){
echo self::API2;
}
};
?>
使用self关键字和双冒号操作符能够直接引用常量。
注意这段代码在第一行直接调用类,没有进行实例话。
正如结果所示,运行代码最终正确输出“小甲鱼”。
记住:
一旦定义了一个常量,就不能改变它的值。
这位鱼油,如果喜欢本系列PHP+MySql+Js帖子,请订阅 专辑☞(传送门)(不喜欢更要订阅{:10_297:} ) 1 回复 学习学习
{:10_277:} 看看
页:
[1]