>백엔드 개발 >PHP 튜토리얼 >PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

WBOY
WBOY원래의
2021-11-03 15:17:034053검색

이전 글 "PHP 상수의 정의와 가치 획득에 대해 알아보세요"에서는 PHP의 상수에 대한 기본 지식을 자세히 소개했습니다. 이번 글에서는 매직 상수에 대한 관련 지식을 살펴보겠습니다. PHP. 모두에게 도움이 되길 바랍니다!

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

이전 글에서는 PHP의 간단한 정의와 상수 획득에 대한 기본 지식과 몇 가지 매직 메소드에 대해 배웠습니다. 다음으로 마법상수 관련 지식과 그것이 무엇인지, 마법상수의 주요 용도는 무엇인지 살펴보겠습니다.

매직 상수란 무엇인가요?

매직 상수는 엄밀히 말하면 상수가 아닙니다. 이전 글에서 소개했듯이 상수는 정의된 후에는 변경할 수 없습니다. 그러나 매직 상수는 PHP에서 미리 정의한 일부 상수입니다. 이러한 미리 정의된 상수는 위치 변경으로 인해 변경될 수 있습니다.

모든 스크립트에서 PHP는 사전 정의된 많은 상수를 제공합니다. 상수마다 확장 라이브러리가 다릅니다. 매직 상수는 미리 정의된 특별한 상수로 이해될 수 있습니다.

마법 상수의 쓰기 형식은 일반적으로 두 개의 밑줄로 시작하고 두 개의 밑줄로 끝나는 두 개의 밑줄(__)입니다. 예: __LINE__, __FILE__ code> 등 잠깐만요. 형식을 작성할 때 매직 상수는 대소문자를 구분하지 않는다는 점을 알아야 하지만 작성할 때 대문자를 사용하도록 노력하십시오. <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;;
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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

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

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

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

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

<?php
echo &#39;该文件位于 " &#39; . __FILE__ . &#39; " &#39;;
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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

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

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

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

<?php
echo &#39;该文件位于 " &#39; . __DIR__ . &#39; " &#39;;
echo  dirname(__FILE__);
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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

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

通过__FUNCTION__

매직 상수 사용


PHP는 실행 환경에서 8개의 매직 상수를 제공합니다. 위에서 언급한 것처럼 상수라고 부르지만, 정확한 값은 코드에 따라 다릅니다. 다음으로, 이 8가지 마법 변수를 개별적으로 살펴보겠습니다. PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)


1.

🎜🎜<span style="font-size: 16px;">__LINE__ 🎜🎜</span>🎜는 파일의 현재 줄 번호를 나타냅니다. 🎜🎜🎜🎜 다음으로 예제를 통해 __LINE__ 매직 상수의 사용을 살펴보고, 매직 상수가 position 상수 값은 어떻게 되나요? 🎜🎜예제는 다음과 같습니다. 🎜
<?php
function test() {
 echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
}
test();
?>
🎜출력 결과: 🎜🎜🎜PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)🎜🎜위의 예에서는 매직 변수 __LINE__을 통해 현재 코드 위치의 줄 번호를 얻을 수 있습니다. 🎜🎜주의해야 할 점은 코드의 위치가 다르면 출력 결과도 다르다는 점입니다. 그래서 위에서 매직 상수는 상수로 간주되지 않으며, 코드가 변경됨에 따라 그 값도 변경된다고 말씀드렸습니다. 아래를 살펴보겠습니다. 🎜🎜🎜2.__FILE__ __FILE__을 통해 🎜🎜🎜🎜 파일의 절대 경로를 나타냅니다. 파일의 절대 경로를 얻을 수 있으며, 이 경로에는 파일 이름이 포함됩니다. 포함된 파일에서 매직 상수가 사용되는 경우 반환된 결과는 포함된 파일의 이름이라는 점에 유의해야 합니다. 🎜🎜예제를 통해 __FILE__의 사용법을 살펴보겠습니다. 🎜
<?php
class test {
 function _print() {
  echo &#39;通过__CLASS__获取的类名为:&#39; . __CLASS__ . "<br>";
  echo &#39;通过__FUNCTION__获取的函数名为:&#39; . __FUNCTION__ ;
 }
}
$t = new test();
$t->_print();
?>
🎜출력 결과: 🎜🎜🎜PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)🎜🎜위의 예에서는 __FILE__을 사용하여 파일의 절대 경로를 얻습니다. 🎜🎜🎜3.__DIR__은 파일이 있는 디렉터리를 나타내는 데 사용됩니다🎜🎜🎜🎜🎜🎜를 통해 얻을 수 있습니다. __DIR__🎜 파일이 있는 디렉터리가 __FILE__에서 파일을 가져오는 데 사용하는 절대 경로와 여전히 다릅니다. 파일이 있는 디렉터리에 현재 파일의 파일 이름이 없습니다. 이 마법 상수는 dirname(__FILE__)로도 이해할 수 있습니다. 🎜🎜예제를 통해 __DIR__ 매직 상수의 사용법을 살펴보겠습니다. 🎜
<?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();
?>
🎜출력 결과: 🎜🎜🎜PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)🎜🎜위의 예에서는 두 가지 방법을 통해 현재 파일이 있는 디렉터리를 얻었습니다. 하나는 __DIR__ 매직 상수를 통해 다른 하나는 dirname(__FILE__)이며 둘 다 동일한 효과를 얻을 수 있습니다. 🎜🎜🎜4.__FUNCTION__은 현재 함수 이름이나 메서드 이름을 가져오는 데 사용됩니다.🎜🎜🎜🎜__FUNCTION__ 현재 함수나 메소드의 이름 다음으로 __FUNCTION__ 매직 상수의 사용법을 예시를 통해 살펴보겠습니다. 🎜🎜예제는 다음과 같습니다. 🎜<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>🎜출력 결과: 🎜🎜🎜🎜🎜🎜위의 예를 통해 __FUNCTION__이 현재 함수의 함수 이름을 얻을 수 있다는 것을 알 수 있습니다. 🎜🎜<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();
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

通过上述示例已经了解在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();
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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();
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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

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

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

<?php
namespace MyProject;
echo &#39;命名空间为:"&#39;, __NAMESPACE__, &#39;"&#39;; 
?>

输出结果:

PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)

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

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

위 내용은 PHP에서 일반적으로 사용되는 8가지 매직 상수를 사용하는 방법 알아보기(자세한 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.