2017-10-01 4 views
0

Ich finde keine Möglichkeit online oder durch die PHP-Dokumente scratchen, um dies zu tun.Wie überprüft man, ob eine Variable eine magische Konstante ist?

Gibt es einen freundlichen oder leichten Weg zu prüfen, ob eine Variable eine Magic Constant wie __FILE__ oder __DIR__ ist? Ähnlich wie is_callable()?

Ich möchte überprüfen, ob die $var übergeben und einige If/Else-Bedingungen auf es ausführen.

Kleines Beispiel.

function test($var) { 

    if ($var == 'string_value') { 

     // Do this... 

    } 

    elseif (is_magic_constant($var)) { 

     // Do this... 

    } 

    else { 

     // Do this... 

    } 

} 

test('string_value'); 
test(__FILE__); 
+0

Was ist der Zweck davon? Ich verstehe den Gebrauch davon nicht ganz, warum sollten Sie wissen müssen, ob es eine magische Konstante ist? Aber soweit ich weiß, gibt es keine Funktion, um das zu überprüfen. – Qirel

+0

Das ergibt keinen Sinn – Akintunde007

Antwort

0

Wenn Sie test(__FILE__); aufrufen, wird __FILE__ sofort erweitert, so dass Ihre test() Funktion eine Zeichenfolge des vollständigen Dateipfad empfängt.

Wenn Sie test('__FILE__'); nennen es erhält noch eine Zeichenfolge, aber dann wird diese Zeichenfolge sein "__FILE__" und Sie können, dass durch defined($var); laufen, um zu sehen, ob es sich um eine bekannte Konstante ist.

Es gibt keine Möglichkeit zu überprüfen, ob es eine magische Konstante ist. Sie können sie also nicht von der reserved constants, einer der Konstanten, die von installierten PHP-Erweiterungen definiert sind, oder von Konstanten, die Sie in Ihrer Anwendung selbst define() haben, unterscheiden. Sie können nur prüfen, ob der String in $var dem Namen einer definierten Konstante entspricht.

Verwandte Themen