PHP兩種定義方式:
使用 define() 函數定義
使用 const 關鍵字定義
使用 define() 函數定義
使用 const 關鍵字定義
define(name, value, case-insensitive)
name:指定常量名稱。
value:指定常量值。
case-insensitive:默認值爲false。默認情況下區分大小寫。
name:指定常量名稱。
value:指定常量值。
case-insensitive:默認值爲false。默認情況下區分大小寫。
<?php
define( "MESSAGE","Hello YiiBai PHP");
echo MESSAGE, "<br/>";
?>
----------- 結果 -----------
Hello YiiBai PHP
<?php
define( "MESSAGE","Hello YiiBai PHP",true); //指定不分大小寫
echo MESSAGE,"<br/>";
echo message,"<br/>";
?>
----------- 結果 -----------
Hello YiiBai PHP
Hello YiiBai PHP
Hello YiiBai PHP
const關鍵字
它是一個語言構造不是一個函數。
它比define()快一點,因爲它沒有返回值。
要區分大小寫。
它是一個語言構造不是一個函數。
它比define()快一點,因爲它沒有返回值。
要區分大小寫。
魔術常量
- PHP中的預定義常量, 依使用而改變。
- 以雙下劃線(__)開頭,以雙下劃線(__)結尾。
- 不分大小寫
- PHP中的預定義常量, 依使用而改變。
- 以雙下劃線(__)開頭,以雙下劃線(__)結尾。
- 不分大小寫
__LINE__
使用當前行號。
使用當前行號。
__FILE__
文件的完整路徑和文件名。 如果它在include中使用,則返回包含文件的名稱。
文件的完整路徑和文件名。 如果它在include中使用,則返回包含文件的名稱。
__DIR__
文件的完整目錄路徑。 等同於dirname(__file__)。 除非它是根目錄,否則它沒有尾部斜槓。 它還解析符號鏈接。
文件的完整目錄路徑。 等同於dirname(__file__)。 除非它是根目錄,否則它沒有尾部斜槓。 它還解析符號鏈接。
__FUNCTION__
表示使用它的函數名稱。如果它在任何函數之外使用,則它將返回空白。
表示使用它的函數名稱。如果它在任何函數之外使用,則它將返回空白。
__CLASS__
表示使用它的函數名稱。如果它在任何函數之外使用,則它將返回空白。
表示使用它的函數名稱。如果它在任何函數之外使用,則它將返回空白。
__TRAIT__
表示使用它的特徵名稱。 如果它在任何函數之外使用,則它將返回空白。 它包括它被聲明的命名空間。
表示使用它的特徵名稱。 如果它在任何函數之外使用,則它將返回空白。 它包括它被聲明的命名空間。
__METHOD__
表示使用它的類方法的名稱。方法名稱在有聲明時返回。
表示使用它的類方法的名稱。方法名稱在有聲明時返回。
__NAMESPACE__
表示當前命名空間的名稱。
表示當前命名空間的名稱。
<?phpecho "<h3>Example for __LINE__</h3>";
echo "You are at line number " . __LINE__ . "<br><br>";// print Your current line number i.e;3
echo "<h3>Example for __FILE__</h3>";
echo __FILE__ . "<br><br>";//print full path of file with .php extension
echo "<h3>Example for __DIR__</h3>";
echo __DIR__ . "<br><br>";//print full path of directory where script will be placed
echo dirname(__FILE__) . "<br><br>"; //its output is equivalent to above one.
echo "<h3>Example for __FUNCTION__</h3>";
//Using magic constant inside function.
function cash(){
echo 'the function name is '. __FUNCTION__ . "<br><br>";//the function name is cash.
}cash();//Using magic constant outside function gives the blank output.
function test_function(){
echo 'HYIIII';
}test_function();
echo __FUNCTION__ . "<br><br>";//gives the blank output.echo "<h3>Example for __CLASS__</h3>";
class abc
{
public function __construct() {
;
}function abc_method(){
echo __CLASS__ . "<br><br>";//print name of the class abc.
}
}
$t = new abc;
$t->abc_method();class first{
function test_first(){
echo __CLASS__;//will always print parent class which is first here.
}
}class second extends first
{
public function __construct() {
;
}
}
$t = new second;
$t->test_first();echo "<h3>Example for __TRAIT__</h3>";
trait created_trait{
function abc(){
echo __TRAIT__;//will print name of the trait created_trait
}
}class anew{
use created_trait;
}
$a = new anew;
$a->abc();
echo "<h3>Example for __METHOD__</h3>";class meth{
public function __construct() {
echo __METHOD__ . "<br><br>";//print meth::__construct
}
public function meth_fun(){
echo __METHOD__;//print meth::meth_fun
}
}
$a = new meth;
$a->meth_fun();echo "<h3>Example for __NAMESPACE__</h3>";
class name{
public function __construct() {
echo 'This line will be printed on calling namespace';
}
}
$clas_name= __NAMESPACE__ .'\name';
$a = new $clas_name;?>
沒有留言:
張貼留言