常——汉语字面为:长久,经久不变。 常量那就好翻译了:长久不变的值。 【重点知识】知识级别我们定义为:默写级 常量的使用范围非常广泛。我们在以后,定义我们的工作目录、定义一些特点的帐户密码、版本号等我们都会使用到常量。所以这一块的知识,非常重要。 常量在代码中的定义、书写方式: **define(常量名,常量值)** 注: 1. 常量值只能为上一章中我们讲到的标量。 2. 常量名可以小写,但是通常大写 3. 常量名可以不加引号,但是通常加上引号。 4. 在字符串中调用常量的时候,必须在引号外面 5. 常量名建议只用字母和下划线 我们用代码来实验一下: 1.定义和调用一次常量试试 ~~~ <?php define('MY_NAME','PHP学院'); echo MY_NAME; //下面是错误的调用方式 echo '我的名字是MY_NAME'; //正确的调用方式该这么写 echo '我的名字是' . MY_NAME; ?> ~~~ 2.注意项目实验 ~~~ <?php //其实可以小写,但是不好区分,所以我们规定通常大写 define('xiaoxie',true); echo xiaoxie; //常量可以在外面不加引号 define(YH,'不要对未来迷茫,迷茫的时候静下心来coding'); echo YH; //只能用标量,我在后面用了一个数组,大家学一下就行,会报错的哟 define('BIAO',array(1,2,3)); ?> ~~~ 此外,系统还为我们准备了一些内置的常量。这些常量都是规定好的。我们先熟悉几个,还有更多的系统常量等我们学习完上册,入门后再慢慢的增加和学习。 | 常量名 | 说明 | | -- | -- | | __LINE__ | 当前所在的行 | | __FILE__ | 当前文件在服务器的路径 | | __FUNCTIOIN__ | 当前函数名 | | __CLASS__ | 当前类名 | | __METHOD__ | 当前成员方法名 | | PHP_OS |PHP运行的操作系统 | | PHP_VERSION |当前PHP的版本 | |__TRAIT__| Trait 的名字,php5.4新加 | |__DIR__|文件所在的目录| |__NAMESPACE__|当前命名空间的名称(区分大小写) | ### defined()函数来做安全机制 此处知识,可以先不用掌握。等学习完函数后,再来看本部分代码也可以。 defined()我们来学习这种用法,主是是为了防止其他人绕过安全检查文件。 函数:defined(常量) 功能:向函数的括号后面传入常量,如果常量定义了就返回true,否则返回false 【情景模拟】假设,我们的这套在线电子商城的软件需要付钱,检查是否付费是通过对软件授权检查来完成的,而文件version.php中就有检查授权的功能,我们在软件中规定,没有授权检查文件version.php就不能使用这个软件。所有的代码都包含了version.php。并且为了防止有人盗版,我还可以把version.php的代码进行了加密。 我们有两个文件: 1. 一个文件中间有版本号,版本声明和授权声明。文件名为version.php 2. 一个文件中有具体的业务功能。例如:用户注册、登陆等,文件名为users.php 我们该怎么做呢?——也就是说不包含 version.php文件就不让,执行users.php之后的代码。 我们来进行实验: version.php文件 ~~~ <?php //此处是检查是否是否授权的业务部份代码xxxx define('AUTH',true); //略过模拟代码xxx行 ?> ~~~ users.php ~~~ <?php //尝试将include 'version.php'这一行代码注释后再执行看看,对比结果 include 'version.php'; if(!defined('AUTH')){ echo '非法!非法!你尝试跳过授权文件'; exit; } //模拟后面用户注册和用户登陆的代码xxx行 echo '用户注册'; ?> ~~~ 实验结果可知:version.php必须要包含 ,不然不会显示后面的echo '用户注册'; * * * * * include 读音:[ɪnˈklud] 解释:包含 version 读音:[ˈvɜ:ʃn] 解释:版本 user 读音:[ˈjuzɚ] 解释:用户 复数:users define 读音:[dɪˈfaɪn] 解释:规定 函数:include('传入文件路径和文件名') 功能:这个函数的功能是传入指定路径的文件,让PHP包含进来执行 注意:在后面的章节中会专门讲解和实验include