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

PHP面向对象编程基础

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

下载课堂源码

接近10年的互联网从业经验,精通Scrum敏捷软件开发的方法,从事互联网产品设计,开发,测试,运营,案例不少于20个,发现自己最喜欢的工作是做外贸营销,外贸SEO,特别喜欢谷歌优化。从2017年3月开始坚持在群161510483直播谷歌SEO和WEB前端开发技术,只要加进来坚持学习零基础也能够学会。

Last modified: 2019年1月15日

Previous Story

PHP面向对象编程基础

第二节:PHP类与对象

PHP类,PHP对象,每个类的定义都以关键字 class 开头后面跟着类名,后面跟着一对花括号,里面包含有类的属性与方法的定义.类名可以是任何非 PHP 保留字的合法标签.

...

Next Story

PHP面向对象编程基础

第四节:PHP变量作用域公共属性与私有属性

PHP变量作用域:公共与私有属性或方法的访问控制,被定义为公有的类成员可以在任何地方被访问.被定义为受保护的类成员则可以被其自身以及其子类和父类访问.

...