Heim  >  Artikel  >  Backend-Entwicklung  >  Globale PHP-Fallback-Funktionen/Konstanten

Globale PHP-Fallback-Funktionen/Konstanten

伊谢尔伦
伊谢尔伦Original
2016-11-23 10:49:29875Durchsuche

Wenn PHP in einem Namespace auf einen nicht qualifizierten Klassen-, Funktions- oder Konstantennamen stößt, verwendet es eine andere Prioritätsstrategie, um den Namen aufzulösen. Klassennamen werden immer in Namen im aktuellen Namespace aufgelöst. Wenn Sie daher auf einen Klassennamen innerhalb des Systems oder nicht im Namespace zugreifen, müssen Sie den vollständig qualifizierten Namen verwenden, zum Beispiel:

Beispiel Nr. 1 Greifen Sie auf die globale Klasse im Namespace zu

<?php
    namespace A\B\C;
    class Exception extends \Exception {}
    $a = new Exception(&#39;hi&#39;); // $a 是类 A\B\C\Exception 的一个对象
    $b = new \Exception(&#39;hi&#39;); // $b 是类 Exception 的一个对象
    $c = new ArrayObject; // 致命错误, 找不到 A\B\C\ArrayObject 类
?>

Wenn bei Funktionen und Konstanten die Funktion oder Konstante nicht im aktuellen Namensraum vorhanden ist, greift PHP auf die Verwendung der Funktion oder Konstante im globalen Raum zurück.

Beispiel #2 Unterstützte globale Funktionen/Konstanten im Namespace

<?php
    namespace A\B\C;
    const E_ERROR = 45;
    function strlen($str)
    {
        return \strlen($str) - 1;
    }
    echo E_ERROR, "\n"; // 输出 "45"
    echo INI_ALL, "\n"; // 输出 "7" - 使用全局常量 INI_ALL
    echo strlen(&#39;hi&#39;), "\n"; // 输出 "1"
    if (is_array(&#39;hi&#39;)) { // 输出 "is not array"
        echo "is array\n";
    } else {
        echo "is not array\n";
    }
?>


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn