Im vorherigen Artikel „Erklären Sie die Definition und Werterfassung von PHP-Konstanten“ haben wir das Grundwissen über Konstanten in PHP ausführlich vorgestellt. In diesem Artikel werfen wir einen Blick auf das relevante Wissen über magische Konstanten PHP. Ich hoffe, es hilft allen!
Im vorherigen Artikel haben wir die Grundkenntnisse der einfachen Definition und Erfassung von Konstanten in PHP sowie einige magische Methoden kennengelernt. Werfen wir als Nächstes einen Blick auf das relevante Wissen über magische Konstanten, was sie sind und welche Hauptverwendungszwecke magische Konstanten haben.
Was sind magische Konstanten?
Um genau zu sein, sind Konstanten keine Konstanten, die nach ihrer Definition geändert werden können. Bei magischen Konstanten handelt es sich jedoch um einige von PHP vordefinierte Konstanten. Diese vordefinierten Konstanten können sich aufgrund von Änderungen an ihrem Speicherort ändern.
Viele vordefinierte Konstanten werden von PHP in jedem Skript bereitgestellt. Verschiedene Konstanten haben unterschiedliche Erweiterungsbibliotheken. Unter magischen Konstanten können spezielle vordefinierte Konstanten verstanden werden.
Das Schreibformat magischer Konstanten besteht normalerweise aus zwei Unterstrichen (__
), die mit zwei Unterstrichen beginnen und mit zwei Unterstrichen enden, wie zum Beispiel: __LINE__
, __FILE__ Code> usw. warten. Wenn es um das Schreibformat geht, müssen Sie wissen, dass bei magischen Konstanten die Groß-/Kleinschreibung nicht beachtet wird. Versuchen Sie jedoch, beim Schreiben Großbuchstaben zu verwenden. <code>__
)开头两个下划线结尾,比如:__LINE__
、__FILE__
等等。讲到书写格式的话,需要知道,魔术常量不区分大小写,但是尽量书写的时候还是采用大写的形式。
魔术常量的使用
PHP的运行环境中提供了八个魔术常量,就像上文中说的,虽然被叫做常量,但准确来说不算是常量,他们的值随着代码中的变化而改变,接下来我们分别来看一下这八个魔术变量。
1.<strong><span style="font-size: 16px;">__LINE__ </span></strong>
表示文件中当前的行号
接下来我们通过示例来看一下__LINE__
魔术常量的使用,并且看一下随着位置的变化魔术常量的值有什么变化。
示例如下:
<?php echo '这是第 " ' . __LINE__ . ' " 行<br/>'; echo '这是第 " ' . __LINE__ . ' " 行<br/>'; echo '---------------<br/>'; echo '这是第 " ' . __LINE__ . ' " 行'; ?>
输出结果:
在上述示例中,我们通过魔术变量__LINE__就能够获取当前代码所在位置的行数。
其中需要注意的是:我们能够发现,当代码所在的位置不同,其所输出的结果也是不同的。所以我们上文中说了魔术常量并不能算是常量,它的值随着代码的变化而改变。我们接着往下看:
2.__FILE__
表示文件的绝对路径
通过__FILE__
能够获取文件的绝对路径,并且这个路径包含了文件名。其中需要注意的是,如果该魔术常量用在了包含文件中,那么返回的结果是被包含的文件名。
下面我们通过示例来看一下__FILE__的使用,示例如下:
<?php echo '该文件位于 " ' . __FILE__ . ' " '; ?>
输出结果:
在上述示例中我们便是通过__FILE__完成了对文件绝对路径的获取。
3.__DIR__
用于表示文件所在目录
通过__DIR__
能够获取文件所在的目录,这个文件所在的目录与__FILE__获取文件的绝对路径还是不一样的,文件所在的目录是不带有当前文件的文件名的。也可以把该魔术常量理解为 dirname(__FILE__)
。
下面我们通过示例来看一下__DIR__魔术常量的使用,示例如下:
<?php echo '该文件位于 " ' . __DIR__ . ' " '; echo dirname(__FILE__); ?>
输出结果:
上述示例中我们通过两种方法,都获取到了当前文件所在的目录,一个是通过__DIR__魔术常量,另一个是dirname(__FILE__),它们俩能够达到的效果是相同的。
4.__FUNCTION__
用于获取当前函数名或方法名
通过__FUNCTION__
PHP stellt acht magische Konstanten in der laufenden Umgebung bereit, obwohl sie, um genau zu sein, als Konstanten bezeichnet werden, je nach Code variieren. Schauen wir uns diese acht magischen Variablen aufgrund von Änderungen separat an.
1.
🎜<span style="font-size: 16px;">__LINE__ 🎜🎜
🎜 stellt die aktuelle Zeilennummer in der Datei dar 🎜🎜🎜🎜 Schauen wir uns als Nächstes die Verwendung der magischen Konstanten __LINE__
anhand von Beispielen an und sehen, wie sich die Magie mit dem ändert Position Was passiert mit dem Wert der Konstante? 🎜🎜Das Beispiel sieht wie folgt aus: 🎜<?php function test() { echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ; } test(); ?>
__FILE__
stellt den absoluten Pfad der Datei 🎜🎜🎜🎜 bis __FILE__
dar Der absolute Pfad der Datei kann ermittelt werden, und dieser Pfad enthält den Dateinamen. Es ist zu beachten, dass bei Verwendung der Magic-Konstante in einer eingebundenen Datei das zurückgegebene Ergebnis der Name der eingebundenen Datei ist. 🎜🎜Sehen wir uns die Verwendung von __FILE__ anhand eines Beispiels an. Das Beispiel sieht wie folgt aus: 🎜<?php class test { function _print() { echo '通过__CLASS__获取的类名为:' . __CLASS__ . "<br>"; echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
__DIR__
wird verwendet, um das Verzeichnis anzugeben, in dem sich die Datei befindet. 🎜🎜🎜🎜🎜kann über 🎜 abgerufen werden __DIR__
🎜 Das Verzeichnis, in dem sich die Datei befindet, unterscheidet sich immer noch vom absoluten Pfad, den __FILE__ zum Abrufen der Datei verwendet. Das Verzeichnis, in dem sich die Datei befindet, hat nicht den Dateinamen der aktuellen Datei. Diese magische Konstante kann auch als dirname(__FILE__)
verstanden werden. 🎜🎜Sehen wir uns die Verwendung der magischen Konstante __DIR__ anhand eines Beispiels an. Das Beispiel sieht wie folgt aus: 🎜<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
__FUNCTION__
wird verwendet, um den aktuellen Funktionsnamen oder Methodennamen abzurufen🎜🎜🎜🎜kann über __FUNCTION__< abgerufen werden /code> Der Name der aktuellen Funktion oder Methode. Schauen wir uns als Nächstes die Verwendung der magischen Konstante __FUNCTION__ anhand eines Beispiels an. 🎜🎜Das Beispiel lautet wie folgt: 🎜<div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php
function testMethod()
{
echo &#39;当前的函数名为:&#39; . __METHOD__ . PHP_EOL . &#39;<br/>&#39;;
}
class TestMethodClass
{
function testMethod1()
{
echo &#39;当前的方法名和类名为:&#39; . __METHOD__ . PHP_EOL;
}
}
testMethod();
$test = new TestMethodClass();
$test->testMethod1();
?></pre><div class="contentsignin">Nach dem Login kopieren</div></div><div class="contentsignin">Nach dem Login kopieren</div></div>🎜Ausgabeergebnis: 🎜🎜🎜🎜🎜🎜Durch das obige Beispiel wissen wir, dass __FUNCTION__ den Funktionsnamen der aktuellen Funktion abrufen kann. 🎜🎜<p><strong><span style="font-size: 16px;">5.<code>__CLASS__
用于获取当前的类名通过__CLASS__
可以用于获取当前的类名,齐总也包括了当前类的作用区域或命名空间。接下来我们通过示例来看一下__CLASS__的使用。
示例如下:
<?php class test { function _print() { echo '通过__CLASS__获取的类名为:' . __CLASS__ . "<br>"; echo '通过__FUNCTION__获取的函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
输出结果:
通过上述示例已经了解在PHP中可以通过__CLASS__来获取当前的类名。
6.__TRAIT__
当前的trait名称
通过__TEAIT__
能够表示当前的trait名称,这其中包括了trait的作用区域或者命名空间。接下来我们通过示例来看一下__TRAIT__的使用。
示例如下:
<?php class Base { public function sayHello() { echo 'Hello '; } } trait SayWorld { public function sayHello() { parent::sayHello(); echo 'World!'; } } class MyHelloWorld extends Base { use SayWorld; } $o = new MyHelloWorld(); $o->sayHello(); ?>
输出结果:
7.__METHOD__
当前的方法名
通过__METHOD__
能够获取当前的方法名,其中也包括类名,接下来我们通过示例来看一下__METHOD__的使用方法,示例如下:
<?php function testMethod() { echo '当前的函数名为:' . __METHOD__ . PHP_EOL . '<br/>'; } class TestMethodClass { function testMethod1() { echo '当前的方法名和类名为:' . __METHOD__ . PHP_EOL; } } testMethod(); $test = new TestMethodClass(); $test->testMethod1(); ?>
输出结果:
上述示例中,我们通过__METHOD__获取了函数名和方法名。其中方法名中包括了类名。
8.__NAMESPACE__
当前文件的命名空间名称
通过__NAMESPACE__
可以获取当前文件的命名空间名称,接下来我们通过示例来看一下,示例如下:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; ?>
输出结果:
到此我们便是通过示例将八种魔术常量了解了一下。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
Das obige ist der detaillierte Inhalt vonErfahren Sie, wie Sie acht häufig verwendete magische Konstanten in PHP verwenden (detaillierte Beispiele).. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!