3.3.1 用常量限制用户跳过某些文件
常——汉语字面为:长久,经久不变。
常量那就好翻译了:长久不变的值。
【重点知识】知识级别我们定义为:默写级
常量的使用范围非常广泛。我们在以后,定义我们的工作目录、定义一些特点的帐户密码、版本号等我们都会使用到常量。所以这一块的知识,非常重要。
常量在代码中的定义、书写方式:
define(常量名,常量值)
注:
- 常量值只能为上一章中我们讲到的标量。
- 常量名可以小写,但是通常大写
- 常量名可以不加引号,但是通常加上引号。
- 在字符串中调用常量的时候,必须在引号外面
- 常量名建议只用字母和下划线
我们用代码来实验一下:
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 的代码进行了加密。
我们有两个文件:
- 一个文件中间有版本号,版本声明和授权声明。文件名为 version.php
- 一个文件中有具体的业务功能。例如:用户注册、登陆等,文件名为 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论