为什么要强调PHP类的功能

时间:2012-11-25 13:05:04

标签: php magic-methods

在PHP中使用OOP时,我看到很多函数都是这样编写的:function __myfunc(){} 我想知道下划线的作用。我读过它们保护功能但是从什么和如何保护?

另一个例子:

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

3 个答案:

答案 0 :(得分:3)

下划线没有效果。但是,两个下划线用于表示具有特殊含义的 magic 函数,例如构造函数__construct()或析构函数__destruct()。有些人使用一个或两个下划线来表示方法是“私有的”,即仅在内部使用。由于此功能在PHP> = 5中作为特殊关键字实现,因此您不应再使用此“强调”:

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

$question = new myClass();
echo $question->myFunc(); // fails!

答案 1 :(得分:2)

这基本上是一种代码符号,表示此方法为private,并且代码的用户不应该使用它。 (对整体功能至关重要)

您应该只在私有方法上放置下划线符号,这被认为是一种很好的做法。

答案 2 :(得分:1)

有一些被称为magic的函数只是将它们标记为私有的符号 - 所以如果有人形成你的团队,请用下划线看这个函数,他会认为它是私有的。但实际上你可以在课外使用它们。要保护课堂内的方法,您需要使用access modifiers