Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

WBOY
Libérer: 2023-04-10 19:14:02
original
3997 Les gens l'ont consulté

Dans l'article précédent "Vous faire comprendre la définition et l'acquisition de la valeur des constantes PHP", nous avons présenté en détail les connaissances de base des constantes en PHP. Dans cet article, examinons les connaissances pertinentes des constantes magiques dans. PHP. , j'espère que cela aidera tout le monde !

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

Dans l'article précédent, nous avons découvert les connaissances de base de la définition simple et de l'acquisition de constantes en PHP, ainsi que quelques méthodes magiques. Examinons ensuite les connaissances pertinentes sur les constantes magiques, ce qu'elles sont et quelles sont les principales utilisations des constantes magiques.

Que sont les constantes magiques ?

Les constantes magiques ne sont pas des constantes pour être précis Comme nous l'avons introduit dans l'article précédent, les constantes ne peuvent pas être modifiées une fois définies. Mais les constantes magiques sont des constantes prédéfinies par PHP. Ces constantes prédéfinies peuvent changer en raison des changements de leur emplacement.

De nombreuses constantes prédéfinies sont fournies par PHP dans n'importe quel script. Différentes constantes ont différentes bibliothèques d'extensions. Les constantes magiques peuvent être comprises comme des constantes spéciales prédéfinies.

Le format d'écriture des constantes magiques est généralement composé de deux traits de soulignement (__) commençant par deux traits de soulignement et se terminant par deux traits de soulignement, tels que : __LINE__, __FILE__ code>, etc. attendez. En ce qui concerne le format d'écriture, vous devez savoir que les constantes magiques ne sont pas sensibles à la casse, mais essayez d'utiliser des majuscules lors de l'écriture. <code>__)开头两个下划线结尾,比如:__LINE____FILE__等等。讲到书写格式的话,需要知道,魔术常量不区分大小写,但是尽量书写的时候还是采用大写的形式。

魔术常量的使用

PHP的运行环境中提供了八个魔术常量,就像上文中说的,虽然被叫做常量,但准确来说不算是常量,他们的值随着代码中的变化而改变,接下来我们分别来看一下这八个魔术变量。

1.<strong><span style="font-size: 16px;">__LINE__ </span></strong> 表示文件中当前的行号

接下来我们通过示例来看一下__LINE__ 魔术常量的使用,并且看一下随着位置的变化魔术常量的值有什么变化。

示例如下:

<?php
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行<br/>&#39;;
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行<br/>&#39;;
echo &#39;---------------<br/>&#39;;
echo &#39;这是第 " &#39; . __LINE__ . &#39; " 行&#39;;
?>
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

在上述示例中,我们通过魔术变量__LINE__就能够获取当前代码所在位置的行数。

其中需要注意的是:我们能够发现,当代码所在的位置不同,其所输出的结果也是不同的。所以我们上文中说了魔术常量并不能算是常量,它的值随着代码的变化而改变。我们接着往下看:

2.__FILE__ 表示文件的绝对路径

通过__FILE__能够获取文件的绝对路径,并且这个路径包含了文件名。其中需要注意的是,如果该魔术常量用在了包含文件中,那么返回的结果是被包含的文件名。

下面我们通过示例来看一下__FILE__的使用,示例如下:

<?php
echo &#39;该文件位于 " &#39; . __FILE__ . &#39; " &#39;;
?>
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

在上述示例中我们便是通过__FILE__完成了对文件绝对路径的获取。

3.__DIR__ 用于表示文件所在目录

通过__DIR__能够获取文件所在的目录,这个文件所在的目录与__FILE__获取文件的绝对路径还是不一样的,文件所在的目录是不带有当前文件的文件名的。也可以把该魔术常量理解为 dirname(__FILE__)

下面我们通过示例来看一下__DIR__魔术常量的使用,示例如下:

<?php
echo &#39;该文件位于 " &#39; . __DIR__ . &#39; " &#39;;
echo  dirname(__FILE__);
?>
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

上述示例中我们通过两种方法,都获取到了当前文件所在的目录,一个是通过__DIR__魔术常量,另一个是dirname(__FILE__),它们俩能够达到的效果是相同的。

4.__FUNCTION__ 用于获取当前函数名或方法名

通过__FUNCTION__

Utilisation de constantes magiques


PHP fournit huit constantes magiques dans l'environnement d'exécution, bien qu'elles soient appelées constantes, elles ne sont pas considérées comme des constantes pour être précis. Leurs valeurs varient en fonction du code. Changements dus aux changements, examinons ces huit variables magiques séparément. Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)


1.

🎜🎜<span style="font-size: 16px;">__LINE__ 🎜🎜🎜 représente le numéro de ligne actuel dans le fichier 🎜🎜🎜🎜 Ensuite, regardons l'utilisation des constantes magiques __LINE__ à travers des exemples, et voyons comment la magie change avec le position Qu'arrive-t-il à la valeur de la constante ? 🎜🎜L'exemple est le suivant : 🎜
<?php
function test() {
 echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
}
test();
?>
Copier après la connexion
🎜Résultat de sortie : 🎜🎜🎜Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)🎜🎜Dans l'exemple ci-dessus, nous pouvons obtenir le numéro de ligne de l'emplacement actuel du code grâce à la variable magique __LINE__. 🎜🎜Ce qu'il faut noter est : nous pouvons constater que lorsque l'emplacement du code est différent, les résultats de sortie sont également différents. Nous avons donc dit plus haut que les constantes magiques ne sont pas considérées comme des constantes et que leurs valeurs changent à mesure que le code change. Regardons en bas : 🎜🎜🎜2.__FILE__ représente le chemin absolu du fichier 🎜🎜🎜🎜 via __FILE__ Le chemin absolu du fichier peut être obtenu, et ce chemin contient le nom du fichier. Il est à noter que si la constante magique est utilisée dans un fichier inclus, le résultat renvoyé est le nom du fichier inclus. 🎜🎜Jetons un coup d'œil à l'utilisation de __FILE__ à travers un exemple L'exemple est le suivant : 🎜
<?php
class test {
 function _print() {
  echo &#39;通过__CLASS__获取的类名为:&#39; . __CLASS__ . "<br>";
  echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
 }
}
$t = new test();
$t->_print();
?>
Copier après la connexion
Copier après la connexion
🎜Résultat de sortie : 🎜🎜🎜Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)🎜🎜Dans l'exemple ci-dessus, nous utilisons __FILE__ pour obtenir le chemin absolu du fichier. 🎜🎜🎜3.__DIR__ est utilisé pour indiquer le répertoire où se trouve le fichier🎜🎜🎜🎜🎜peut être obtenu via 🎜 __DIR__🎜 Le répertoire où se trouve le fichier est toujours différent du chemin absolu utilisé par __FILE__ pour obtenir le fichier. Le répertoire où se trouve le fichier n'a pas le nom de fichier du fichier actuel. Cette constante magique peut également être comprise comme dirname(__FILE__). 🎜🎜Jetons un coup d'œil à l'utilisation de la constante magique __DIR__ à travers un exemple. L'exemple est le suivant : 🎜
<?php
class Base {
 public function sayHello() {
  echo &#39;Hello &#39;;
 }
}
trait SayWorld {
 public function sayHello() {
  parent::sayHello();
  echo &#39;World!&#39;;
 }
}
class MyHelloWorld extends Base {
 use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
?>
Copier après la connexion
Copier après la connexion
🎜Résultat de sortie : 🎜🎜🎜Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)🎜🎜Dans l'exemple ci-dessus, nous avons obtenu le répertoire où se trouve le fichier actuel via deux méthodes, l'une est grâce à la constante magique __DIR__, l'autre est dirname(__FILE__), les deux peuvent obtenir le même effet. 🎜🎜🎜4.__FUNCTION__ est utilisé pour obtenir le nom de la fonction ou le nom de la méthode actuel🎜🎜🎜🎜peut être obtenu via __FUNCTION__< /code> Le nom de la fonction ou de la méthode actuelle. Examinons ensuite l'utilisation de la constante magique __FUNCTION__ à travers un exemple. 🎜🎜L'exemple est le suivant : 🎜<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">&lt;?php function testMethod() { echo &amp;#39;当前的函数名为:&amp;#39; . __METHOD__ . PHP_EOL . &amp;#39;&lt;br/&gt;&amp;#39;; } class TestMethodClass { function testMethod1() { echo &amp;#39;当前的方法名和类名为:&amp;#39; . __METHOD__ . PHP_EOL; } } testMethod(); $test = new TestMethodClass(); $test-&gt;testMethod1(); ?&gt;</pre><div class="contentsignin">Copier après la connexion</div></div><div class="contentsignin">Copier après la connexion</div></div>🎜Résultat de sortie : 🎜🎜🎜🎜🎜🎜Grâce à l'exemple ci-dessus, nous savons que __FUNCTION__ peut obtenir le nom de la fonction actuelle. 🎜🎜<p><strong><span style="font-size: 16px;">5.<code>__CLASS__ 用于获取当前的类名

通过__CLASS__可以用于获取当前的类名,齐总也包括了当前类的作用区域或命名空间。接下来我们通过示例来看一下__CLASS__的使用。

示例如下:

<?php
class test {
 function _print() {
  echo &#39;通过__CLASS__获取的类名为:&#39; . __CLASS__ . "<br>";
  echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
 }
}
$t = new test();
$t->_print();
?>
Copier après la connexion
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

通过上述示例已经了解在PHP中可以通过__CLASS__来获取当前的类名。

6.__TRAIT__ 当前的trait名称

通过__TEAIT__能够表示当前的trait名称,这其中包括了trait的作用区域或者命名空间。接下来我们通过示例来看一下__TRAIT__的使用。

示例如下:

<?php
class Base {
 public function sayHello() {
  echo &#39;Hello &#39;;
 }
}
trait SayWorld {
 public function sayHello() {
  parent::sayHello();
  echo &#39;World!&#39;;
 }
}
class MyHelloWorld extends Base {
 use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
?>
Copier après la connexion
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

7.__METHOD__ 当前的方法名

通过__METHOD__能够获取当前的方法名,其中也包括类名,接下来我们通过示例来看一下__METHOD__的使用方法,示例如下:

<?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();
?>
Copier après la connexion
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

上述示例中,我们通过__METHOD__获取了函数名和方法名。其中方法名中包括了类名。

8.__NAMESPACE__ 当前文件的命名空间名称

通过__NAMESPACE__可以获取当前文件的命名空间名称,接下来我们通过示例来看一下,示例如下:

<?php
namespace MyProject;
echo &#39;命名空间为:"&#39;, __NAMESPACE__, &#39;"&#39;; 
?>
Copier après la connexion

输出结果:

Apprenez à utiliser huit constantes magiques couramment utilisées en PHP (exemples détaillés)

到此我们便是通过示例将八种魔术常量了解了一下。

大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal