最新消息:周一至周五21:30分QQ群(161510483)直播,零基础免费学谷歌SEO,WEB前端,PHP入门教程

第三节:PHP类常量和内部引用

PHP面向对象编程基础 林雍岷 125浏览

PHP类常量和内部引用,可以把在类中始终保持不变的值定义为常量,在定义和使用常量的时候不需要使用 $ 符号。常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。我们还将如何从类本身中引用属性,方法和常量。有时你想要定义一个变量设定值,所以值不能改变,在类之外,你能够把这些定义为一个常量,例如,如果我想定义用户密码的最小字符数,我可以做一些像minchars。

开始学习PHP类常量和内部引用课程之前请下载第二节PHP类与对象的源代码,因为这节课需要使用到它。

我们在user.php添加define(‘MINCHARS’, 8)常量,可以在类中定义常量了,不同之处一个类常量只能被类本身访问。例如我们的minchars常量,该常数只能被我们的用户(user)类访问,你可以在应用程序的其他任何地方使用一个同名的常量,而不会产生名称冲突。在user.php是如何定义一个类常量:

自定义常量的完整代码:

让我们来使用定义的常量,并测试是否可行,回到index.php设置密码:

这个密码太短了,让我们来看看在浏览器显示的结果:

使用自定义常量要求密码至少设置8个字符

使用自定义常量要求密码至少设置8个字符

让我们把$peter->setPassword(‘aaa’)的密码设置为$peter->setPassword(‘aaaaaaaaa’)长一些看看:

使用自定义常量要求密码设置超过8个字符

使用自定义常量要求密码设置超过8个字符

关于常量双冒号也被称为PAAMAYIM NEKUDOTAYIM,如果password通过密码验证,我们希望将它设置为一个哈希值,这是令人困惑的地方,而我们使用self关键字作为常量,使用this关键字的属性和方法,回到user.php

看是否工作var_dump($peter)浏览器输出结果:

回顾:

  1. 设置常量的方法Const MINCHARS=8
  2. 类本身内引用类的常量self::MINCHARS
  3. 类内部的引用属性和方法$this->password

下载课堂源码

转载请注明:林雍岷 » 第三节:PHP类常量和内部引用