9

PHP 関数名がアンダースコアで始まるとはどういう意味ですか?

例えば:__construct()

構造の意味は知っていますが、関数がアンダースコアまたは二重アンダースコアで始まる他の場所を見たことがありますが、その意味がわかりません。

4

5 に答える 5

19

これは、PHPが暗黙的にそれを呼び出すことを意味します。

それは「魔法の方法」と呼ばれています

また、1つではなく、2つのアンダースコアです。

詳細はこちら:PHPマジックメソッド

于 2009-11-30T16:53:35.890 に答える
5

PHPでは、2つのアンダースコアで始まる関数には、通常、特別な意味があります。マニュアルから:

PHPは、__で始まるすべての関数名を魔法のように予約します。文書化された魔法の機能が必要な場合を除いて、PHPでは__とともに関数名を使用しないことをお勧めします。

たとえば、__construct()は、オブジェクトの初期化中に自動的に呼び出される特別なメソッドです。

Seも: http: //php.net/manual/en/language.oop5.magic.php

于 2009-11-30T16:54:04.300 に答える
3

メソッドまたはプロパティが非公開/保護されていることを示すために最初のアンダースコアを 1 つ使用する、一般的な命名 "コーディング スタイル" もあります。かなり普及していると思います。

于 2014-12-22T00:07:59.363 に答える
1

他の回答で述べたように、二重アンダースコアは「魔法の」メソッドに使用されます。ユーザーがメソッド名に 2 つのアンダースコアを意図的に使用することは決してないため、衝突のリスクはほとんどありません。それが単一のアンダースコアではない理由は、オブジェクト指向の非公開性を強制するために「private」キーワードが登場する前の、悪い(より悪い)昔のプライベートメソッドの一般的な規則であったためだと思います。

于 2009-11-30T17:01:58.813 に答える
0

codeigniter では、コントローラーでメソッドをアンダースコアで開始すると、ルーターはその URL からのアクセスを許可しないことを認識します。

于 2009-11-30T17:14:03.920 に答える