php常量和變量之用常量限制用戶跳過某些文件
常——漢語字面為:長久,經(jīng)久不變。
常量那就好翻譯了:長久不變的值。
【重點知識】知識級別我們定義為:默寫級
常量的使用范圍非常廣泛。我們在以后,定義我們的工作目錄、定義一些特點的帳戶密碼、版本號等我們都會使用到常量。所以這一塊的知識,非常重要。
常量在代碼中的定義、書寫方式:
define(常量名,常量值)
注:
1.常量值只能為上一章中我們講到的標量。
2.常量名可以小寫,但是通常大寫
3.常量名可以不加引號,但是通常加上引號。
4.在字符串中調(diào)用常量的時候,必須在引號外面
5.常量名建議只用字母和下劃線
我們用代碼來實驗一下:
1.定義和調(diào)用一次常量試試
<?php define('MY_NAME','PHP中文網(wǎng)'); echo MY_NAME; //下面是錯誤的調(diào)用方式 echo '我的名字是MY_NAME'; //正確的調(diào)用方式該這么寫 echo '我的名字是' . MY_NAME; ?>
2.注意項目實驗
<?php //其實可以小寫,但是不好區(qū)分,所以我們規(guī)定通常大寫 define('xiaoxie',true); echo xiaoxie; //常量可以在外面不加引號 define(YH,'不要對未來迷茫,迷茫的時候靜下心來coding'); echo YH; //只能用標量,我在后面用了一個數(shù)組,大家學(xué)一下就行,會報錯的喲 define('BIAO',array(1,2,3)); ?>
此外,系統(tǒng)還為我們準備了一些內(nèi)置的常量。這些常量都是規(guī)定好的。我們先熟悉幾個,還有更多的系統(tǒng)常量我們學(xué)習(xí)完上冊,入門后再慢慢的增加和學(xué)習(xí)。
常量名 | 說明 |
---|---|
LINE | 當(dāng)前所在的行 |
FILE | 當(dāng)前文件在服務(wù)器的路徑 |
FUNCTIOIN | 當(dāng)前函數(shù)名 |
CLASS | 當(dāng)前類名 |
METHOD | 當(dāng)前成員方法名 |
PHP_OS | PHP運行的操作系統(tǒng) |
PHP_VERSION | 當(dāng)前PHP的版本 |
TRAIT | Trait 的名字,php5.4新加 |
DIR | 文件所在的目錄 |
NAMESPACE | 當(dāng)前命名空間的名稱(區(qū)分大小寫) |
defined()函數(shù)來做安全機制
此處知識,可以眼前不用掌握。學(xué)習(xí)完函數(shù)后,再來看本部份代碼也可以。
defined()我們來學(xué)習(xí)這種用法,主是是為了防止其他人繞過安全檢查文件。
函數(shù):defined(常量)
功能:向函數(shù)的括號后面?zhèn)魅氤A?,如果常量定義了就返回true,否則返回false
【情景模擬】假設(shè),我們的這套在線電子商城的軟件需要付錢,檢查是否付費是通過對軟件授權(quán)檢查來完成的,而文件version.php中就有檢查授權(quán)的功能,我們在軟件中規(guī)定,沒有授權(quán)檢查文件version.php就不能使用這個軟件。所有的代碼都包含了version.php。并且為了防止有人盜版,我還可以把version.php的代碼進行了加密。
我們有兩個文件:
1.一個文件中間有版本號,版本聲明和授權(quán)聲明。文件名為version.php
2.一個文件中有具體的業(yè)務(wù)功能。例如:用戶注冊、登陸等,文件名為users.php
我們該怎么做呢?——也就是說不包含 version.php文件就不讓,執(zhí)行users.php之后的代碼。
我們來進行實驗:
version.php文件
<?php //此處是檢查是否是否授權(quán)的業(yè)務(wù)部份代碼xxxx define('AUTH',true); //略過模擬代碼xxx行 ?>
users.php
<?php //嘗試將include 'version.php'這一行代碼注釋后再執(zhí)行看看,對比結(jié)果 include 'version.php'; if(!defined('AUTH')){ echo '非法!非法!你嘗試跳過授權(quán)文件'; exit; } //模擬后面用戶注冊和用戶登陸的代碼xxx行 echo '用戶注冊'; ?>
實驗結(jié)果可知:version.php必須要包含 ,不然不會顯示后面的echo '用戶注冊';
include
讀音:[?n?klud]
解釋:包含
version
讀音:[?v?:?n]
解釋:版本
user
讀音:[?juz?]
解釋:用戶
復(fù)數(shù):users
define
讀音:[d??fa?n]
解釋:規(guī)定
函數(shù):include('傳入文件路徑和文件名')
功能:這個函數(shù)的功能是傳入指定路徑的文件,讓PHP包含進來執(zhí)行
注意:在后面的章節(jié)中會專門講解和實驗include