Maison  >  Article  >  développement back-end  >  Description de la méthode magique constante du système PHP et résumé de l'exemple d'utilisation de la variable magique

Description de la méthode magique constante du système PHP et résumé de l'exemple d'utilisation de la variable magique

伊谢尔伦
伊谢尔伦original
2017-07-17 15:11:461156parcourir

Constantes système

FILE nom du fichier actuel
LINE numéro de ligne actuel
FUNCTION nom de la fonction actuelle
CLASS nom de la classe actuelle
METHOD méthode du courant Nom de l'objet

Analyse détaillée

1. FILE

Le chemin complet et le nom du fichier. S'il est utilisé dans un fichier inclus par , renvoie le nom du fichier inclus. Depuis PHP 4.0.2, FILE contient toujours un chemin absolu (ou le chemin absolu résolu dans le cas d'un lien symbolique), alors que les versions antérieures contenaient parfois un chemin relatif.
Dirname(fichier) constante PHP
FILE : connu sous le nom de PHPconstante magique, renvoie le chemin complet et le nom de fichier du script PHP en cours d'exécution, y compris un chemin absolu

1 ) La fonction dirname(FILE) renvoie le chemin où se trouve le script. Mettre à jour le réseau
Par exemple, le fichier b.php contient le contenu suivant :

<?php   
$basedir = dirname(FILE);   
echo $basedir  
//将在页面打印出一个这个文件所在绝对路径!  
?>

Cela équivaut à l'utilisation de server.mappth en asp
Si b.php est utilisé par a.php dans d'autres répertoires Fichier requis ou inclus pour citer. Le contenu de la variable $basedir est toujours le chemin d'accès au dossier où se trouve b.php. Au lieu de devenir le répertoire où se trouve le fichier a.php.

2) dirname(FILE) renvoie généralement une structure de répertoires du répertoire actuel où se trouve le fichier au répertoire racine du système.
Ne renvoie pas le nom du fichier actuel. dirname(FILE) peut également en renvoyer un. (répertoire actuel) [La raison est que le fichier b.php se trouve dans http.conf ou dans le répertoire WEB par défaut de PHP Configuration Development Environment

<?php
/**
在你的公用的配置文件中,来设置你的根目录,这样就不用担心经常搬家了。
*/
define(&#39;ROOT_PATH&#39;, dirname(FILE) . DIRECTORY_SEPARATOR);
echo ROOT_PATH;
echo "<br>";
echo FILE;
echo "<br>";
echo dirname(FILE);
echo "<br>";
echo dirname(dirname(FILE));
?>


2. LINE

Le numéro de ligne actuel dans le fichier. Cette variable est très utile lors du débogage d'erreurs. À d'autres moments, elle est de peu d'utilité.

<?php
echo LINE;  //显示,LINE所在的行号
?>


CLASS
Le nom de la classe, renvoyé. par PHP5 Le résultat est sensible à la casse

<?php
class base_class
{
function say_a()
{
echo "&#39;a&#39; – said the " . CLASS . "<br/>";
}
function say_b()
{
echo "&#39;b&#39; – said the " . get_class($this) . "<br/>";
}
}
class derived_class extends base_class
{
function say_a()
{
parent::say_a();
echo "&#39;a&#39; – said the " . CLASS . "<br/>";
}
function say_b()
{
parent::say_b();
echo "&#39;b&#39; – said the " . get_class($this) . "<br/>";
}
}
$obj_b = new derived_class();
$obj_b->say_a();
echo "<br/>";
$obj_b->say_b();
?>

Le résultat est :

&#39;a&#39; – said the base_class
&#39;a&#39; – said the derived_class
&#39;b&#39; – said the  derived_class
&#39;b&#39; – said the derived_class

Parfois, on peut utiliser get_class à la place de CLASS

4. FONCTION et MÉTHODE

FONCTION : nom de la fonction, le résultat renvoyé en php5 est sensible à la casse
MÉTHODE : nom de la fonction dans la méthode, le résultat renvoyé en php5 est sensible à la casse. de
sont les noms des méthodes. Quelle est la différence ?

<?php
class test
{
function a()
{
echo FUNCTION;
echo "<br>";
echo METHOD;
}
}
function good (){
echo FUNCTION;
echo "<br>";
echo METHOD;
}
$test = new test();
$test->a();
echo "<br>";
good();
?>

Résultat renvoyé :

a
test::a
good
good

Par rapport à la fonction isolée, les deux peuvent supprimer le nom de la fonction, il n'y a pas de différence, s'il s'agit d'une méthode dans un class , FUNCTION ne peut extraire que le nom de la méthode de la classe, tandis que METHOD peut non seulement extraire le nom de la méthode, mais également le nom de la classe

DIR

<.> où se trouve le fichier Table des matières. S'il est utilisé dans un fichier inclus, renvoie le répertoire où se trouve le fichier inclus. C'est équivalent à dirname(FILE). Les noms de répertoire n'incluent pas la barre oblique finale, sauf s'il s'agit du répertoire racine. (Nouveau en PHP 5.3.0)

Si vous souhaitez utiliser DIR dans les versions antérieures à 5.3, vous pouvez le faire

<?php
if(!defined(&#39;DIR&#39;)) {
$iPos = strrpos(FILE, "/");
define("DIR", substr(FILE, 0, $iPos) . "/");
}
?>

6. Le nom de l' espace de noms actuel (sensible à la casse). Cette constante est définie au moment de la compilation (nouveau dans PHP 5.3.0)

7 STATIC

Lorsque vous appelez la méthode statique de la classe, renvoyez le nom de la classe, sensible aux majuscules et minuscules. S'il est appelé en héritage, le nom de classe hérité peut être renvoyé, qu'il soit défini ou non en héritage.

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!

Déclaration:
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