PHP 魔術(shù)常量含代碼

    PHP 魔術(shù)常量

    魔術(shù)常量是在PHP中預(yù)定義的常量,根據(jù)使用情況而發(fā)生變化。愛掏網(wǎng) - it200.com它們以雙下劃線(__)開頭和結(jié)尾。愛掏網(wǎng) - it200.com

    它們與其他預(yù)定義常量類似,但由于它們根據(jù)上下文變化值,所以被稱為 魔術(shù) 常量。愛掏網(wǎng) - it200.com

    PHP中有 九個 魔術(shù)常量。愛掏網(wǎng) - it200.com其中八個魔術(shù)常量以雙下劃線(__)開始和結(jié)尾。愛掏網(wǎng) - it200.com

    1. __LINE__
    2. __FILE__
    3. __DIR__
    4. __FUNCTION__
    5. __CLASS__
    6. __TRAIT__
    7. __METHOD__
    8. __NAMESPACE__
    9. ClassName::class

    所有常量在編譯時解析,而不是運行時,與普通常量不同。愛掏網(wǎng) - it200.com魔術(shù)常量是不區(qū)分大小寫的。愛掏網(wǎng) - it200.com

    版本 描述
    5.3.0 添加了 __DIR____NAMESPACE__ 魔術(shù)常量
    5.4.0 添加了 __TRAIT__ 魔術(shù)常量
    5.5.0 添加了::class魔術(shù)常量

    以下是所有常量的定義,附帶示例代碼:

    __LINE__

    它返回當(dāng)前文件中使用此常量時的行號。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __LINE__</h3>";  
        // print Your current line number i.e;4   
        echo "You are at line number " . __LINE__ . "<br><br>";
    ?>
    

    輸出:

    ### Example for __LINE__
    
    
    You are at line number 4
    

    __FILE__

    這個魔術(shù)常量返回執(zhí)行的文件的完整路徑,即文件所在位置。愛掏網(wǎng) - it200.com如果在include語句內(nèi)部使用,將返回被包含的文件的名稱。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __FILE__</h3>";  
        //print full path of file with .php extension  
        echo __FILE__ . "<br><br>";
    ?>
    

    輸出:

    ### Example for __FILE__
    
    
    D:\xampp\htdocs\program\magic.php
    

    __DIR__

    它返回執(zhí)行文件的完整目錄路徑。愛掏網(wǎng) - it200.com該魔術(shù)常量返回的路徑相當(dāng)于dirname(__FILE__)。愛掏網(wǎng) - it200.com除非是根目錄,否則該魔術(shù)常量不會有尾部斜杠。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __DIR__</h3>";  
        //print full path of directory where script will be placed  
        echo __DIR__ . "<br><br>";
        //below output will equivalent to above one.
        echo dirname(__FILE__) . "<br><br>";  
    ?>
    

    輸出:

    ### Example for __DIR__
    
    
    D:\xampp\htdocs\program
    
    D:\xampp\htdocs\program
    

    __FUNCTION__

    這個魔術(shù)常量返回使用它的函數(shù)名稱。愛掏網(wǎng) - it200.com如果在任何函數(shù)外部使用它,它將返回空。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __FUNCTION__</h3>";  
        //Using magic constant inside function.  
        function test(){  
            //print the function name i.e; test. 
            echo 'The function name is '. __FUNCTION__ . "<br><br>"; 
        }  
        test();  
    
        //Magic constant used outside function gives the blank output.  
        function test_function(){  
            echo 'Hie';  
        }  
        test_function();  
        //give the blank output. 
        echo  __FUNCTION__ . "<br><br>";
    ?>
    

    輸出:

    ### Example for __FUNCTION__
    
    
    The function name is test
    
    Hie
    

    __CLASS__

    它返回使用這個魔術(shù)常量的類名。愛掏網(wǎng) - it200.com__CLASS__常量在traits中也可用。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __CLASS__</h3>";  
        class JTP  
        {  
            public function __construct() {  
                ;  
        }  
        function getClassName(){  
            //print name of the class JTP. 
            echo __CLASS__ . "<br><br>"; 
            }  
        }  
        t = new JTP;t->getClassName();  
    
        //in case of multiple classes 
        class base
        {  
        function test_first(){  
                //will always print parent class which is base here.  
                echo __CLASS__; 
            }  
        }  
        class child extends base  
        {  
            public function __construct() {  
                ;  
            }  
        }  
        t = new child;t->test_first();  
    ?>
    

    輸出結(jié)果:

    ### Example for __CLASS__
    
    
    JTP
    
    base
    

    __TRAIT__

    這個魔術(shù)常量返回使用它的特性名稱。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __TRAIT__</h3>";  
        trait created_trait {  
            function jtp(){  
                //will print name of the trait i.e; created_trait  
                echo __TRAIT__;
            }  
        }  
        class Company {  
            use created_trait;  
            }  
        a = new Company;a->jtp();  
    ?>
    

    輸出:

    ### Example for __TRAIT__
    
    
    created_trait
    

    __METHOD__

    它返回包含這個魔法常量的類方法的名稱。愛掏網(wǎng) - it200.com方法名返回的是聲明時的名稱。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __METHOD__</h3>";
        class method {  
            public function __construct() {  
                //print method::__construct  
                    echo __METHOD__ . "<br><br>"; 
                }  
            public function meth_fun(){  
                //print method::meth_fun  
                    echo __METHOD__; 
            }  
        }  
        a = new method;a->meth_fun();
    ?>
    

    輸出:

    ### Example for __METHOD__
    
    
    method:: construct
    method:: meth_fun
    

    __NAMESPACE__

    它返回當(dāng)前命名空間的名稱。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        echo "<h3>Example for __NAMESPACE__</h3>";
        class name {  
            public function __construct() {  
                echo 'This line will print on calling namespace.';   
            }   
        }  
        class_name = __NAMESPACE__ . '\name';a = new class_name; 
    ?>
    

    輸出:

    ### Example for __NAMESPACE__
    
    
    This line will print on calling namespace.
    

    ClassName::class

    這個魔術(shù)常量不是以雙下劃線(__)開頭和結(jié)尾。愛掏網(wǎng) - it200.com它返回ClassName的完全合格名稱。愛掏網(wǎng) - it200.comClassName::class添加在 PHP 5.5.0 中。愛掏網(wǎng) - it200.com它在命名空間類中很有用。愛掏網(wǎng) - it200.com

    示例:

    <?php 
        namespace Technical_Portal;
        echo "<h3>Example for CLASSNAME::CLASS </h3>";
        class javatpoint {  
        }
        echo javatpoint::class;    //ClassName::class 
    ?>
    

    輸出:

    ### Example for ClassName::class
    
    
    Technical_Portal\javatpoint
    

    注意:記住命名空間必須是最前面的語句或在腳本中的任何聲明調(diào)用之后,否則會產(chǎn)生致命錯誤。愛掏網(wǎng) - it200.com

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評論
    更多 網(wǎng)友評論0 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 秋霞鲁丝片一区二区三区| 亚洲福利视频一区二区三区| 国产韩国精品一区二区三区久久| 亚洲一区免费在线观看| 好吊视频一区二区三区| 日本一区高清视频| 色婷婷香蕉在线一区二区| 日韩人妻一区二区三区免费| 国产激情一区二区三区成人91| 免费精品一区二区三区在线观看 | 国产一区二区精品久久岳√| 大香伊人久久精品一区二区| 无码人妻精品一区二区三区99仓本| 国产av福利一区二区三巨| 国产成人一区二区动漫精品| 冲田杏梨AV一区二区三区| 亚洲.国产.欧美一区二区三区| 无码国产伦一区二区三区视频| 亚洲AV美女一区二区三区| 国产激情视频一区二区三区| 一本大道东京热无码一区| 亚洲中文字幕无码一区 | 精品久久久中文字幕一区| 亚洲AV日韩AV一区二区三曲| 无码中文人妻在线一区| 久久精品免费一区二区喷潮| 午夜视频一区二区| 色一乱一伦一区一直爽| 狠狠做深爱婷婷综合一区| 制服中文字幕一区二区| 亚洲AV色香蕉一区二区| 亚洲国产一区二区三区在线观看 | 精品一区二区三区免费| 国产午夜精品一区二区三区漫画| 久久免费精品一区二区| 精品一区二区三区在线观看视频| 亚洲国产一区国产亚洲| 国内精品视频一区二区八戒| 动漫精品专区一区二区三区不卡| 中文字幕一区二区在线播放| 久久er99热精品一区二区 |