php常量和变量之用常量限制用户跳过某些文件

常——汉语字面为:长久,经久不变。

常量那就好翻译了:长久不变的值。

【重点知识】知识级别我们定义为:默写级

常量的使用范围非常广泛。我们在以后,定义我们的工作目录、定义一些特点的帐户密码、版本号等我们都会使用到常量。所以这一块的知识,非常重要。

常量在代码中的定义、书写方式:

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_OSPHP运行的操作系统
PHP_VERSION当前PHP的版本
TRAITTrait 的名字,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

继续学习
||
<?php define('MY_NAME','PHP中文网'); echo MY_NAME; //下面是错误的调用方式 echo '我的名字是MY_NAME'; //正确的调用方式该这么写 echo '我的名字是' . MY_NAME; ?>
提交重置代码
章节
笔记
提问
课件
反馈
捐赠

php入门教程之一周学会PHP

高并发千万级数据库系统解决方案
  • 推荐课程
  • 评论
  • 问答
  • 笔记
  • 课件下载
Aの汉

Aの汉

标量是指bool,int,float,string等基本变量

4年前    添加回复 2

回复
Wendy

Wendy

“登录”不是“登陆”

3年前    添加回复 0

回复
没事爬着

没事爬着

1.define用来定义一个常量,常量也是全局范围的。不用管作用域就可以在脚本的任何地方访问 常量。一个常量一旦被定义,就不能再改变或者取消定义 如: define("path","root/www/web") define为常root/www/web 为常量的值 2.defined用来检测常量有没有被定义,若常量存在,则返回true,

4年前    添加回复 0

回复
No

No

猪哥威武

4年前    添加回复 0

回复

defined这个实验代码我这里不对哇

[最新 小萝卜哒哒 的回答]这是本网站学习路线的 案例代码 ,

时间:2年前

常量在外面不加引号会报错。

[最新 (O_O) 的回答]定义常量时候 第一个参数也要加引号啊比如 define("YH",'我是个好人')

时间:2年前

为什么我的没有报错?

[最新 秋香姐家的小书童 的回答]echo  不能打印数组

时间:2年前

这个路径的文件在哪

[最新 鹿先生 的回答]从你文件的根目录出发 啊, 这个你可以自己设置的

时间:3年前

bool值输出的问题

[最新 益伦 的回答]原来false不输出,非常感谢

时间:4年前

?

?

1.常量值只能为上一章中我们讲到的标量。 2.常量名可以小写,但是通常大写 3.常量名可以不加引号,但是通常加上引号。 4.在字符串中调用常量的时候,必须在引号外面 5.常量名建议只用字母和下划线

7个月前 0

梨夜?

梨夜?

exit()终止正在运行的进程 判断常量是否存在: define('NAME', 'XIAOM'); if(!define('NAME')) echo '常量不存在'; else echo NAME;

7个月前 0

梨夜?

梨夜?

define('MY_NAME','PHP中文网'); echo '我的名字是' . MY_NAME; //常量的正确调用方法

7个月前 0

梨夜?

梨夜?

define(常量名,常量值) 注: 1.常量值只能为上一章中我们讲到的标量。 2.常量名可以小写,但是通常大写 3.常量名可以不加引号,但是通常加上引号。 4.在字符串中调用常量的时候,必须在引号外面 5.常量名建议只用字母和下划线

7个月前 0

手机用户1609903637

手机用户1609903637

常量名 说明 LINE 当前所在的行 FILE 当前文件在服务器的路径 FUNCTIOIN 当前函数名 CLASS 当前类名 METHOD 当前成员方法名 PHP_OS PHP运行的操作系统 PHP_VERSION 当前PHP的版本 TRAIT Trait 的名字,php5.4新加 DIR 文件所在的目录 NAMESPACE 当前命名空间的名称(区分大小写)

8个月前 0

大大

大大

define 读音:[dɪˈfaɪn] 解释:规定 define(常量名,常量值)

10个月前 0

邢百贺

邢百贺

这里

11个月前 0

邢百贺

邢百贺

1111

11个月前 0

秋闲独醉

秋闲独醉

常量名 说明 LINE 当前所在的行 FILE 当前文件在服务器的路径 FUNCTIOIN 当前函数名 CLASS 当前类名 METHOD 当前成员方法名 PHP_OS PHP运行的操作系统 PHP_VERSION 当前PHP的版本 TRAIT Trait 的名字,php5.4新加 DIR 文件所在的目录 NAMESPACE 当前命名空间的名称(区分大小写)

1年前 0

回忆

回忆

define(常量名,常量值) 注: 1.常量值只能为上一章中我们讲到的标量。 2.常量名可以小写,但是通常大写 3.常量名可以不加引号,但是通常加上引号。 4.在字符串中调用常量的时候,必须在引号外面 5.常量名建议只用字母和下划线

1年前 0

彭程

彭程

常量在代码中的定义、书写方式: define(常量名,常量值)

1年前 0

孤独成瘾

孤独成瘾

常量名 说明 LINE 当前所在的行 FILE 当前文件在服务器的路径 FUNCTIOIN 当前函数名 CLASS 当前类名 METHOD 当前成员方法名 PHP_OS PHP 运行的操作系统 PHP_VERSION 当前PHP的版本 TRAIT Trait 的名字,php5.4新加 DIR 文件所在的目录 NAMESPACE 当前命名空间的名称(区分大小写)

2年前 0

秋城

秋城

define(常量名,常量值)

2年前 0

Detail

Detail

常量和标量的值都只能是布尔值,整形,浮点型,字符串型。

2年前 0

无道

无道

define()来定义常量; defined()主要防止其它人绕过安全检查文件;

2年前 0

课件暂不提供下载,工作人员正在整理中,后期请多关注该课程~