コアポイント
- PHPは、コード機能を強化するための事前定義の定数と魔法の方法を提供します。事前定義された定数は、コードとPHPに関する読み取り専用の情報を提供しますが、魔法の方法はクラスに予約されている名前であり、特別なPHP機能を有効にします。
- 定義された定数(ダブルアンダースコアで囲まれたすべての大文字)は、コードに関する情報を提供します。例には、
__LINE__
(ソースファイルの行番号を返します)、__FILE__
(そのフルパスを含むファイル名を表します)、__DIR__
(ファイルパスのみを表します)、__CLASS__
(現在のクラスの名前を返す)、(現在の関数の名前を返す)、__FUNCTION__
__METHOD__
__NAMESPACE__
魔法の方法は、特別なPHP動作にリンクするメカニズムを提供します。 (クラスのオブジェクトインスタンスを作成するために使用)、 - (PHPのゴミコレクターによってオブジェクトが破壊された場合)、
__construct()
(プロパティが未定義またはgetterコンテキストで呼び出された場合)、__destruct()
セットを解除したい)、および__get()
(オブジェクトを文字列として表すのに役立ちます)。__set()
__isset()
__unset()
PHPは、プログラムに定義された定数と魔法の方法の特別なセットを提供します。__toString()
で設定された定数とは異なり、これらの定数の値はコードの使用場所に依存し、コードとPHPに関する読み取り専用情報にアクセスするために使用されます。マジックメソッドは、特別なPHP機能に引っ掛けるためにクラスで使用できる予約メソッド名です。 PHPの魔法の方法と定数について学んだことがないなら、この記事はあなたのためです!より便利な方法とコードでそれらを使用する方法をいくつか確認します。
事前定義された定数define()
定義された定数は、コードに関する情報にアクセスするために使用されます。ここの定数は、やなどの二重のアンダースコアで囲まれたすべての大文字に記載されています。 PHP:
によって提供されるいくつかの有用な定数を以下に示します-
__LINE__
以下に示すように、ソースファイルに表示される定数の行番号を返します。
<?php echo "line number: " . __LINE__; // line number: 2 echo "line number: " . __LINE__; // line number: 3 echo "line number: " . __LINE__; // line number: 4 ?>
- 以下に示すように、そのフルパスを含むファイルの名前を示します。
__FILE__
<?php echo "the name of this file is: " . __FILE__; // the directory and name of file is: C:wampwwwindex.php ?>
- ファイルへのパスのみを表します:
-
__DIR__
<?php echo "the directory of this file is: " . __DIR__; // the directory of this file is: C:wampwww ?>
- 現在のクラスの名前を返します:
-
__CLASS__
<?php class Sample { public function __construct() { echo __CLASS__; } } $obj = new Sample(); // Sample ?>
- 現在の関数の名前を返します:
-
__FUNCTION__
<?php function mySampleFunc() { echo "the name the function is: " . __FUNCTION__; } mySampleFunc(); //the name of function is: mySampleFunc ?>
- 現在のメソッドの名前を表します:
-
__METHOD__
<?php class Sample { public static function myMethod() { echo "the name of method is: " . __METHOD__; } } Sample::myMethod(); // the name of the method is: myMethod ?>
- 現在の名前空間の名前を返します:
-
__NAMESPACE__
<?php namespace MySampleNS; echo "the namespace is: " . __NAMESPACE__; // the name space is: MySampleNS ?>魔法の方法
魔法の方法は、特別なPHP動作にリンクするメカニズムを提供します。以前の定数とは異なり、それらの名前は、
やなどの2つの主要なアンダースコアを使用して小文字/ラクダ文字で書かれています。 __construct()
は、PHPによって呼ばれる魔法の方法で、クラスオブジェクトのインスタンスを作成します。任意の数のパラメーターを受け入れることができます。 __destruct()
__construct()
名前が示すように、
<?php class MySample { public function __construct($foo) { echo __CLASS__ . " constructor called with $foo."; } } $obj = new MySample(42); // MySample constructor called with 42 ?>
__destruct()
次のマジックメソッドは、プロパティのオーバーロードを処理し、PHPが未定義の(またはアクセスできない)プロパティとメソッド呼び出しを処理する方法を提供します。プロパティが未定義である(またはアクセスできない)場合、ゲッターコンテキストで呼び出された場合、PHPは
<?php class MySample { public function __destruct() { echo __CLASS__ . " destructor called."; } } $obj = new MySample; // MySample destructor called ?>メソッドは、セッターのコンテキストで未定義のプロパティのために呼び出されます。属性名と値の2つのパラメーターを受け入れます。
<?php echo "line number: " . __LINE__; // line number: 2 echo "line number: " . __LINE__; // line number: 3 echo "line number: " . __LINE__; // line number: 4 ?>
上記の例コードでは、プロパティ名はクラスで定義されていません。値「mysample」をそれに割り当てようとしましたが、PHPは魔法の方法__set()
を呼び出します。 「名前」を$prop
パラメーターとして、「alireza」は$value
として取得し、値をプライベート$myArray
配列に保存します。 __get()
メソッドは同様に機能します$obj->name
の場合、__get()
メソッドが呼び出され、「name」が$prop
パラメーターとして渡されます。サンプルコードにも表示される、アクセス可能なメンバー変数を取得して確認するのに役立つ他の魔法の方法があります:__isset()
、__unset()
、および__toString()
。 __isset()
と__unset()
は、両方ともPHPの同じ名前(アンダースコアなし)の関数によってトリガーされます。 __isset()
プロパティが設定されているかどうかを確認し、テストするプロパティであるパラメーターを受け入れます。 __unset()
パラメーター、つまりプログラムが解明したいプロパティの名前を受信します。多くの場合、ユーザーや他のプロセスへの出力など、オブジェクトを文字列として表すことが有用です。通常、PHPはそれらをメモリ内のIDとして表しますが、これは私たちにとって良くありません。この方法は、オブジェクトを文字列として表すのに役立ちます。このメソッドは、オブジェクトが文字列として使用される場合、たとえば__toString()
としてトリガーされます。また、他の通常のパブリックメソッドと同様に直接呼ぶこともできます。これは、キャストする空の文字列を追加するなどのトリックよりも好ましいものです。 echo "Hello $obj"
概要
オブジェクト指向プログラミングは、メンテナンスとテストが簡単なコードを作成できます。より良い、より標準的なPHPコードを作成するのに役立ちます。さらに、PHPが提供する魔法の方法と定数を利用できます。
stepan kapl / shutterstock の写真 PHPマジックメソッドと事前定義された定数のFAQ PHPの魔法方法のさまざまな種類は何ですか?
PHPの魔法方法は、特定の条件が満たされたときに自動的にトリガーされる特別な機能です。彼らは常に二重のアンダースコア()から始めます。 PHPのさまざまな種類の魔法方法が含まれます`
construct()destruct()call()、
callstatic()、
get()、
set()、
set()、sleep()、
wakeup()、
toString()、
invoke()、
set_state()、
clone()、
PHPで定義された定数を使用する方法は?
PHPの事前定義された定数は、常に組み込みの定数を使用できます。これらには、さまざまな拡張機能によって定義された他の多くの定数と同様に、やPHP_VERSION
などのコア定数が含まれます。事前定義された定数を使用するには、ドル記号($)を排除することなく、その名前を書くだけです。たとえば、PHPの現在のバージョンを取得するには、以下に示すようにPHP_OS
定数を使用できます。
PHP_VERSION
PHPの魔法方法の目的は何ですか? echo PHP_VERSION;
マジックメソッドは、クラスから新しいオブジェクトが作成されるたびに自動的に呼び出されます。通常、オブジェクトのプロパティを初期化するか、使用前にオブジェクトが必要とする設定を実行するために使用されます。 __construct()
自分の定数をPHPで定義できますか?
__construct()
はい、
キーワードを使用して、PHPで独自の定数を定義できます。定数が定義されると、変更したり未定義になったりすることはできません。
PHPの魔法の方法と従来の方法の違いは何ですか? define()
const
魔法の方法とPHPの従来の方法の主な違いは、特定のイベントによって魔法の方法が自動的にトリガーされ、従来の方法を明示的に呼び出す必要があることです。また、魔法の方法は常にダブルアンダースコア(__)から始まりますが、従来の方法は常にそうではありません。
定数がPHPで定義されているかどうかを確認する方法は?
関数を使用して、定数がPHPで定義されているかどうかを確認できます。この関数は、定数の名前を文字列として取得し、定数が定義されている場合にtrueを返し、それ以外の場合はfalseを返します。PHPの魔法方法の目的は何ですか?
PHPのdefined()
__destruct()
PHPで静的な方法で魔法の方法を使用できますか?
はい、PHPで静的な方法を備えた魔法の方法を使用できます。クラスにはアクセスできない、または存在しない静的メソッドを呼び出すと、__destruct()
魔法のメソッドが自動的に発生されます。
PHPの定義された定数のいくつかの一般的な用途は何ですか?
PHPの事前定義された定数は通常、PHP環境に関する情報を取得するか、特定の機能の動作を制御するために使用されます。たとえば、定数を使用してPHPバージョンを確認でき、__callStatic()
定数を使用してオペレーティングシステムを確認できます。
PHPで魔法の方法を書き直すことはできますか?
はい、PHPで魔法の方法を書き直すことができます。サブクラスを作成するときは、独自のMagicメソッドの実装を提供できます。ただし、親クラスの実装を呼び出す場合は、PHP_VERSION
キーワードを使用できます。 PHP_OS
以上がPHPの魔法の方法と定義済み定数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Laravelは、直感的なフラッシュメソッドを使用して、一時的なセッションデータの処理を簡素化します。これは、アプリケーション内に簡単なメッセージ、アラート、または通知を表示するのに最適です。 データは、デフォルトで次の要求のためにのみ持続します。 $リクエスト -

PHPクライアントURL(CURL)拡張機能は、開発者にとって強力なツールであり、リモートサーバーやREST APIとのシームレスな対話を可能にします。尊敬されるマルチプロトコルファイル転送ライブラリであるLibcurlを活用することにより、PHP Curlは効率的なexecuを促進します

Laravelは簡潔なHTTP応答シミュレーション構文を提供し、HTTP相互作用テストを簡素化します。このアプローチは、テストシミュレーションをより直感的にしながら、コード冗長性を大幅に削減します。 基本的な実装は、さまざまな応答タイプのショートカットを提供します。 Illuminate \ support \ facades \ httpを使用します。 http :: fake([[ 'google.com' => 'hello world'、 'github.com' => ['foo' => 'bar']、 'forge.laravel.com' =>

顧客の最も差し迫った問題にリアルタイムでインスタントソリューションを提供したいですか? ライブチャットを使用すると、顧客とのリアルタイムな会話を行い、すぐに問題を解決できます。それはあなたがあなたのカスタムにより速いサービスを提供することを可能にします

ストレージ:: Laravelフレームワークのダウンロード方法は、ファイルストレージの抽象化を管理しながら、ファイルのダウンロードを安全に処理するための簡潔なAPIを提供します。 サンプルコントローラーでストレージ::ダウンロード()を使用する例は次のとおりです。

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHPロギングは、Webアプリケーションの監視とデバッグ、および重要なイベント、エラー、ランタイムの動作をキャプチャするために不可欠です。システムのパフォーマンスに関する貴重な洞察を提供し、問題の特定に役立ち、より速いトラブルシューティングをサポートします

Laravelのサービスコンテナとサービスプロバイダーは、そのアーキテクチャの基本です。 この記事では、サービスコンテナ、詳細サービスプロバイダーの作成、登録、および実用的な使用法を例で説明します。 Oveから始めます


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ホットトピック









