常-漢語字面為:長久,經久不變。
常數就好翻譯了:長久不變的值。
【重點知識】知識層級我們定義為:默寫級
常數的使用範圍非常廣泛。我們在以後,定義我們的工作目錄、定義一些特點的帳戶密碼、版本號碼等我們都會使用到常數。所以這一塊的知識,非常重要。
常數在程式碼中的定義、書寫方式:
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 | #檔案所在的目錄
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