ホームページ > バックエンド開発 > PHPチュートリアル > PHPシステム定数マジックメソッドの説明とマジック変数の使用例まとめ

PHPシステム定数マジックメソッドの説明とマジック変数の使用例まとめ

伊谢尔伦
リリース: 2023-03-14 09:28:02
オリジナル
1219 人が閲覧しました

システム定数

FILE 現在のファイル名
LINE 現在の行番号
FUNCTION 現在の関数名
CLASS 現在のクラス名
METHOD 現在のオブジェクトのメソッド名

詳細分析

1.ファイルのフルパスそしてファイル名。 インクルードファイル

で使用された場合、インクルードされたファイル名を返します。 PHP 4.0.2 以降、FILE には常に絶対パス (シンボリック リンクの場合は解決された絶対パス) が含まれますが、それより前のバージョンには相対パスが含まれる場合がありました。

PHP 定数 dirname(file) FILE: PHPマジック定数
として知られ、絶対パスを含む、現在実行中の PHP スクリプトのフルパスとファイル名を返します
1) dirname(FILE) 関数は、次の場所を返します。のスクリプトパス。 ネットワークを更新します たとえば、ファイル b.php には次のコンテンツが含まれます:

<?php   
$basedir = dirname(FILE);   
echo $basedir  
//将在页面打印出一个这个文件所在绝对路径!  
?>
ログイン後にコピー

これは、ASP での server.mappth の使用と同等です
b.php が a.php ファイルによって参照されている場合は、他のファイルに require または includeディレクトリ。 変数 $basedir の内容は、b.php が存在するフォルダーへのパスのままです。 a.php ファイルが配置されているディレクトリにはなりません。

2) dirname(FILE) は通常、ファイルが配置されている現在のディレクトリからシステムのルート ディレクトリまでの
ディレクトリ構造

を返します。

現在のファイル名は返されません。 dirname(FILE) は (現在のディレクトリ) を返すこともあります。[その理由は、b.php ファイルが http.conf または PHP 設定開発環境
2 のデフォルトの WEB ディレクトリにあるためです。

ファイルの現在の行番号。この変数は、エラーをデバッグするときに非常に役立ちますが、あまり役に立たない場合もあります

<?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));
?>
ログイン後にコピー

3。CLASS

PHP5 によって返される結果は大文字と小文字が区別されます

<?php
echo LINE;  //显示,LINE所在的行号
?>
ログイン後にコピー

<?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();
?>
ログイン後にコピー

場合によっては、CLASS

4の代わりにget_classを使用することもできます


FUNCTION: 関数名、php5で返される結果は大文字と小文字が区別されます

METHOD: メソッド内の関数名、php5の結果返されるメソッドはどちらも大文字と小文字が区別されます。違いは何ですか?

&#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
ログイン後にコピー
戻り結果:

<?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();
?>
ログイン後にコピー

分離関数と比較すると、どちらも関数名を抽出できますが、クラス内のメソッドの場合、FUNCTION はクラスのメソッド名のみを抽出できますが、METHOD は違いはありません。メソッド名を抽出するだけでなく、クラス名も抽出できます


5. DIR


ファイルが置かれているディレクトリ。インクルードされたファイル内で使用された場合、インクルードされたファイルが配置されているディレクトリを返します。これは dirname(FILE) と同等です。ルート ディレクトリでない限り、ディレクトリ名には末尾のスラッシュは含まれません。 (PHP 5.3.0 の新機能)

5.3 より前のバージョンで DIR を使用したい場合は、次のようにすることができます

a
test::a
good
good
ログイン後にコピー
6. NAMESPACE


現在の

namespace

の名前 (大文字と小文字が区別されます)。この定数はコンパイル時に定義されます (PHP 5.3.0 の新機能)

7. STATIC

クラスの静的メソッドを呼び出すと、大文字と小文字が区別されてクラス名が返されます。継承で呼び出された場合は、継承で定義されているかどうかに関係なく、継承されたクラス名を返すことができます。

りー

以上がPHPシステム定数マジックメソッドの説明とマジック変数の使用例まとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート