El mejor tutorial de PHP variable de magia en 2024. En este tutorial podrás aprender __LINE__,__FILE__,__DIR__,__FUNCTION__,__CLASS__,__TRAIT__,__METHOD__,__NAMESPACE__,
Cualquier script PHP para ejecutarlo ofrece una serie de constantes predefinidas.
Sin embargo, muchas constantes están definidas por varias extensiones, y sólo cuando se cargan aparecerán estas extensiones, o dinámicamente cargados, o se ha incluido en tiempo de compilación en ella.
Hay ocho constantes mágicas y sus valores a medida que cambian de posición en el código se cambia.
Por ejemplo __LINE__ valor sobre el cual es dependiente de la línea en el guión para decidir. Estas constantes especiales son sensibles a mayúsculas, de la siguiente manera:
Los archivos en el número de línea actual.
Ejemplo:
<?php echo '这是第 “ ' . __LINE__ . ' ” 行'; ?>
La salida del ejemplo anterior es:
这是第 “ 2 ” 行
La ruta completa y el nombre del archivo. Si se utiliza en el archivo de inclusión, a continuación, devolver el nombre del archivo para ser incluidos.
A partir de PHP 4.0.2 en adelante, __ FILE__ siempre contiene una ruta absoluta (si es un enlace simbólico, es una ruta absoluta ha analizado), y en esta versión anterior a veces contiene una ruta relativa.
Ejemplo:
<?php echo '该文件位于 “ ' . __FILE__ . ' ” '; ?>
La salida del ejemplo anterior es:
该文件位于 “ E:\wamp\www\test\index.php ”
archivo de catálogo se encuentra. Si se incluye en el archivo, el directorio está incluido en el archivo se devuelve.
Es equivalente a dirname (__ FILE__). A menos que sea el directorio raíz, o el nombre del directorio no incluye una barra al final. (PHP 5.3.0 complemento)
Ejemplo:
<?php echo '该文件位于 “ ' . __DIR__ . ' ” '; ?>
La salida del ejemplo anterior es:
该文件位于 “ E:\wamp\www\test ”
Nombre de la función (PHP 4.3.0 añadido). A partir de PHP esta constante devuelve el nombre de la función, ya que fue declarada 5 casos (mayúsculas y minúsculas). En PHP 4 su valor siempre con una letra minúscula.
Ejemplo:
<?php function test() { echo '函数名为:' . __FUNCTION__ ; } test(); ?>
La salida del ejemplo anterior es:
函数名为:test
Nombre de la clase (PHP 4.3.0 en el original). A partir de PHP Esto devuelve el nombre de la clase constante se define como el tiempo desde 5 (mayúsculas y minúsculas).
En PHP 4 su valor siempre con una letra minúscula. nombre de la clase incluyendo el papel de la zona que se declara (como Foo \ Bar). Nota de PHP 5.4 en adelante __CLASS__ de rasgo también juegan un papel. Cuando se utiliza en los métodos de rasgo, __ método class__ rasgo es llamar al nombre de la clase.
Ejemplo:
<?php <?php class test { function _print() { echo '类名为:' . __CLASS__ . "<br>"; echo '函数名为:' . __FUNCTION__ ; } } $t = new test(); $t->_print(); ?>
La salida del ejemplo anterior es:
类名为:test 函数名为:_print
Nombre del rasgo (5.4.0 PHP añadido). A partir de PHP 5.4.0, PHP implementa un método de reutilización de código, llamados rasgos.
Nombre del rasgo incluida la función de la zona que se declara (como Foo \ Bar).
Está cubierto de la clase base hereda miembros insertan SayWorld Rasgo en el método MyHelloWorld. comportamiento MyHelloWorld enfoque coherente definido en la clase. La prioridad es el método actual en una clase sustituye el método rasgo, el método y el rasgo que cubre el método de la clase base.
<?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(); ?>
El anterior ejemplo de salida voluntad:
Hello World!
Los métodos para clases (PHP 5.0.0 en el original). Este método devuelve el nombre tal como fue declarado (mayúsculas y minúsculas).
Ejemplo:
<?php function test() { echo '函数名为:' . __METHOD__ ; } test(); ?>
La salida del ejemplo anterior es:
函数名为:test
Nombre del espacio de nombres actual (mayúsculas y minúsculas). Esta constante se define en tiempo de compilación (PHP 5.3.0 en el original).
Ejemplo:
<?php namespace MyProject; echo '命名空间为:"', __NAMESPACE__, '"'; // 输出 "MyProject" ?>
La salida del ejemplo anterior es:
命名空间为:"MyProject"