PHP開發基礎教程之常量LOGIN

PHP開發基礎教程之常量

概念

常數可以理解為:長久不變的值,常數值被定義後,在腳本的其他任何地方都不能被改變。


一、常數組成

常數的書寫形式為define(常數名,常數)

註:

  • # 常數名稱可以小寫,但通常大寫

  •  常數名稱可以不加引號,但通常加上引號。

  •  在字串中呼叫常數的時候,必須在引號外

  •  常數名建議只用字母和底線

#我們來定義和呼叫一個常數:

實例:

<?php
//定义一个常量
define('Name','PHP.com');
//正确的调用方式
echo '我们是'.Name;
echo '<br/>';
//错误的调用方式
echo '我们是Name';
?>

接下來,我們來驗證下關於常數的幾個說法

實例:

<?php
//其实可以小写,但是不好区分出来,所以习惯上大家都大写
define('age',27);
echo age;
//常量可以在外面不加引号
define(A,'安徽省');
echo A;
//只能用于标量,用于其他会报错,例如数组
define('HF',array(1,2,3));
echo HF;
?>

註1:常數定義是未加引號,可以正常輸出,但是PHP會提醒我們定義不規範,此處Ntice

可以透過修改PHP設定檔消除,各位有興趣的話,可以自己搜索,嘗試解決。

註2:前面提到的七種資料型,還可以分為三大類

標量資料型別:布林型、整數、浮點型、字串

複合資料型別:陣列、物件

特殊資料型別:NUll、資源型、回調函數

註3:常數在定義後,預設是全域變量,可以在整個運行的腳本的任何地方使用。


二、部分內建常數

系統也為我們準備了一些內建的常數。這些常量都是規定好的。我們先熟悉幾個,還有更多的系統常數我們學習完上冊,入門後再慢慢的增加和學習。


  PHP運行的作業系統##目前PHP的版本__TRAIT__#Trait 的名字,php5.4新加#__DIR__檔案所在的目錄

常數名稱

##__LINE__
目前所在的行

__FILE__
目前檔案在伺服器的路徑

#__FUNCTIOIN__###########目前函數名稱## #

__CLASS__

目前類別名稱

__METHOD__

             

目前成員方法名稱

               #  ## 

#PHP_VERSION

##__NAMESPACE__

######### ########目前命名空間的名稱(區分大小寫)################


實例:

<?php
//输出当前所在行
echo __LINE__;
echo "<br/>";
//输出当前文件所在服务器的路径
echo __FILE__;
echo "<br/>";
//输出当前PHP运行的操作系统
echo PHP_OS;
?>

註:其他幾個,大家可以嘗試輸出看看,有幾個還沒學到,後面章節學到再詳細介紹


三、利用defined()函數來做安全機制

此處知識,暫時只做了解。學習完函數後,再來看本部程式碼也可以。

defined()我們來學習這種用法,主是為了防止其他人繞過安全檢查檔案。

函數:defined(常數)
功能:向函數的括號後面傳入常數,如果常數定義了就回傳true,否則回傳false

假設情況:

我們有一套線上電子商城的軟體需要付錢,檢查是否付費是透過對軟體授權檢查來完成的,而文件version.php中就有檢查授權的功能,我們在軟體中規定,沒有授權檢查文件version.php就不能使用這個軟體。所有的程式碼都包含了version.php。而且為了防止有人盜版,我還可以把version.php的程式碼進行了加密。

我們有兩個檔案:

  • 一個檔案中間有版本號,版本宣告和授權宣告。檔案名稱為version.php

  • 一個檔案中有具體的業務功能。例如:使用者註冊、登陸等,檔案名稱為users.php

我們該怎麼做呢? ——也就是說不包含 version.php檔案就不讓,執行users.php之後的程式碼。

我們來實驗:

1.version.php檔案

程式碼如下:

<?php
//此处是检查是否是否授权的业务部份代码xxxx
define('AUTH',true);
//略过模拟代码xxx行
?>

2.ser.php

程式碼如下:

<?php
//尝试将include 'version.php'这一行代码注释后再执行看看,对比结果
include 'version.php';
if(!defined('AUTH')){
    echo '非法!非法!你尝试跳过授权文件';
    exit;
}

結果可知:version.php必須包含,不然不會顯示後面的echo '使用者註冊';

函數:include('傳入檔案路徑與檔案名稱')
功能:這個函數的功能是傳入指定路徑的文件,讓PHP包含進來執行

後面會詳細解釋inclde

下一節
<?php //定义一个常量 define('Name','PHP.com'); //正确的调用方式 echo '我们是'.Name; echo '<br/>'; //错误的调用方式 echo '我们是Name'; ?>
章節課件