> 백엔드 개발 > PHP 튜토리얼 > PHP 시스템 상수 매직 메소드 설명 및 매직 변수 사용 예 요약

PHP 시스템 상수 매직 메소드 설명 및 매직 변수 사용 예 요약

伊谢尔伦
풀어 주다: 2023-03-14 09:28:02
원래의
1221명이 탐색했습니다.

시스템 상수

FILE 현재 파일 이름
LINE 현재 줄 번호
FUNCTION 현재 함수 이름
CLASS 현재 클래스 이름
METHOD 현재 객체의 메서드 이름

상세 분석

파일 전체 경로 그리고 파일 이름. 포함된 파일

에서 사용되는 경우 ​​포함된 파일 이름을 반환합니다. PHP 4.0.2부터 FILE에는 항상 절대 경로(심볼릭 링크의 경우 확인된 절대 경로)가 포함되어 있지만 그 이전 버전에는 때때로 상대 경로가 포함되어 있었습니다.

PHP 상수 dirname(file) FILE: PHPmagic 상수
라고도 하며 절대 경로를 포함하여 현재 실행 중인 PHP 스크립트의 전체 경로와 파일 이름을 반환합니다.
1) dirname(FILE) 함수는 PHP 스크립트의 위치를 ​​반환합니다. 스크립트 경로. 네트워크 업데이트 예를 들어, b.php 파일에는 다음 내용이 포함됩니다:

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

이것은 asp의 server.mappth 사용법과 동일합니다.
b.php가 a.php 파일 require에서 참조되거나 다른 파일에 포함됩니다. 디렉토리. $basedir 변수의 내용은 여전히 ​​b.php가 있는 폴더의 경로입니다. a.php 파일이 있는 디렉토리가 되는 대신.

2) dirname(FILE)은 일반적으로 파일이 있는 현재 디렉터리에서 시스템 루트 디렉터리까지
디렉터리 구조

를 반환합니다.

현재 파일명은 반환되지 않습니다. dirname(FILE)도 하나를 반환할 수 있습니다. (현재 디렉터리) [이유는 b.php 파일이 http.conf 또는 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의 기본 WEB 디렉터리에 있기 때문입니다.


파일 현재 줄 번호. 이 변수는 오류를 디버깅할 때 매우 유용합니다

<?php
echo LINE;  //显示,LINE所在的行号
?>
로그인 후 복사

3. CLASS


클래스 이름, PHP5에서 반환되는 결과는 대소문자를 구분합니다

<?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();
?>
로그인 후 복사

결과는 다음과 같습니다.
&#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
로그인 후 복사

때로는 CLASS


4 대신 get_class를 사용할 수 있습니다. FUNCTION 및 METHOD

FUNCTION: 함수 이름, php5에서 반환된 결과는 대소문자를 구분합니다.METHOD: 메서드의 함수 이름, php5 결과 반환된 값은 대소문자를 구분합니다. 둘 다 메소드의 이름입니다. 차이점은 무엇입니까?

<?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();
?>
로그인 후 복사

반환 결과:

a
test::a
good
good
로그인 후 복사

격리된 함수와 비교하면 둘 다 함수 이름을 추출할 수 있으므로 차이가 없습니다. 클래스에 있는 메서드인 경우 FUNCTION은 클래스의 메서드 이름만 추출할 수 있지만 METHOD는 클래스의 메서드 이름만 추출할 수 있습니다. 메소드 이름만 추출할 수 있는 것이 아니라 클래스 이름도 추출할 수 있습니다


5.DIR

파일이 있는 디렉토리입니다. 포함된 파일 내에서 사용되는 경우 포함된 파일이 있는 디렉터리를 반환합니다. dirname(FILE)과 동일합니다. 디렉터리 이름은 루트 디렉터리가 아닌 이상 뒤에 슬래시를 포함하지 않습니다. (PHP 5.3.0의 새로운 기능) 5.3 이전 버전에서 DIR을 사용하려면 다음을 수행하세요.

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

6. NAMESPACE

현재 네임스페이스의 이름(대소문자 구분). 이 상수는 컴파일 타임에 정의됩니다(PHP 5.3.0의 새로운 기능)

7. STATIC

클래스의 정적 메서드를 호출할 때 대소문자를 구분하여 클래스 이름을 반환합니다. 상속에서 호출되면 상속에 정의되어 있는지 여부에 관계없이 상속된 클래스 이름을 반환할 수 있습니다. 아아아아

위 내용은 PHP 시스템 상수 매직 메소드 설명 및 매직 변수 사용 예 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿