不二如是 发表于 2018-11-7 11:01:08

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:} )

优时风 发表于 2020-5-7 08:29:28

1

yuchiyuchiyu 发表于 2020-5-23 14:45:31

回复

COGSWW 发表于 2020-8-12 00:33:45

学习学习

omg123460 发表于 2021-10-23 19:49:50

{:10_277:}

知识改变眼界 发表于 2022-9-12 12:20:41

看看
页: [1]
查看完整版本: 0 0 4 3 ● 声明常量和属性