1

PHPでOOPを使用するとき、私はこのように書かれた多くの関数を見てきました:function __myfunc(){} 私はアンダースコアが何をするのか知りたいです。私はそれらが機能を保護することを読みましたが、何からどのように?

もう一つの例:

class myClass{
    function __myFunc(){
        return ' what am i doing?';
    }
}
$question = new myClass;
echo $question->__myFunc();
4

3 に答える 3

3

下線は効果がありません。ただし、コンストラクタまたはデストラクタなど、特別な意味を持つ魔法の関数を示すために2つのアンダースコアが使用されます。一部の人々は、メソッドが「プライベート」であること、つまり内部でのみ使用されることを示すために1つまたは2つのアンダースコアを使用しました。この機能はPHP>=5で特別なキーワードとして実装されているため、この「下線」はもう使用しないでください。__construct()__destruct()

class myClass{
    private function myFunc() {
        return ' what am i doing?';
    }
}

$question = new myClass();
echo $question->myFunc(); // fails!
于 2012-11-25T13:10:48.360 に答える
2

これは基本的にこのメソッドがそうであるというコード表記でprivateあり、コードのユーザーはそれで遊んではいけません。(全体的な機能にとって重要)

アンダースコア記号はプライベートメソッドにのみ配置する必要があります。これは良い習慣と考えられています。

于 2012-11-25T13:07:10.380 に答える
1

マジックと呼ばれる関数のいくつかがあります。他の関数は、それらをプライベートとしてマークするための単なる表記です。したがって、チームの誰かがこの関数をアンダースコアで見ると、彼はそれをプライベートと見なします。しかし実際には、クラス自体の外でそれらを使用することができます。クラス内のメソッドを保護するには、アクセス修飾子を使用する必要があります

于 2012-11-25T13:10:16.400 に答える