方法可以在类之外定义吗? 我刚刚开始使用PHP中的课程,而我来自C++背景。我所看到的每个示例都显示了在类定义内部定义的方法,我想知道是否可以在类定义外部定义我的类方法以提高可读性?

方法可以在类之外定义吗? 我刚刚开始使用PHP中的课程,而我来自C++背景。我所看到的每个示例都显示了在类定义内部定义的方法,我想知道是否可以在类定义外部定义我的类方法以提高可读性?,php,Php,有点像。PHP5.4iTroduced,它与您所能得到的最接近。简而言之,不,您不能这样做; 在php中,每个方法都应该在类内。这就是为什么我见过的一些开发人员认为php不是完全面向对象的语言。是的,你可以在php中使用。类方法的函数体可以完全放入外部文件中: class foo { function bar() { include('import_method_body.php'); } } 这是很久以前的事了。我不这么认为。PHP的工作就像C++一样。你的意

有点像。PHP5.4iTroduced,它与您所能得到的最接近。

简而言之,不,您不能这样做;
在php中,每个方法都应该在类内。这就是为什么我见过的一些开发人员认为php不是完全面向对象的语言。

是的,你可以在php中使用。类方法的函数体可以完全放入外部文件中:

class foo
{
    function bar() {
        include('import_method_body.php');
    }
}

这是很久以前的事了。

我不这么认为。PHP的工作就像C++一样。你的意思是“增加C++开发者的可读性”。你应该关注提高其他PHP开发人员对代码的可读性。我认为你的可读性可能不受C++圈子的欢迎。millimoose——php中如此大的类必须有巨大的定义,对吗?我问这个问题的原因是,我正在考虑将我编写的应用程序的方式从使用独立函数改为一个类(或几个类),但有数千行代码。@Nate如果你的类太大,需要拆分成多个源文件,你应该考虑把它分成多个类。如果这就是他们认为PHP不完全OOP的原因,那么他们对PHP还有很多要学习的地方。(这不完全是OOP,但这是它最不担心的)@Michael amen兄弟,amen:)你知道吗,我也同意他们的看法。以asp.net为例。这就像用55分打100分marks@DigitalAssets这是一个荒谬的比较。更容易的是将ASP.NET MVC与ZeNamework、CaKEPHP/SalpOffice/CODENITENTIZER相比较。所有这些事情,这些I.NET框架的答案只有一个,不太像C++,但实际上你可以这样做。(如果我发现有人在另一个文件中包含了一个方法体,我想我会辞职)好吧,看看最流行的PHP框架之一(Zend),它大量使用了它。(我不是在这里判断);米迦勒:PHP是一种解释性语言,我觉得很难与C++进行比较。e、 例如,您可以注册自己的协议包装器,然后执行一些有线
操作,包括'my://wrap(it.up())'东西。这不仅仅是在方法体内部(Zend框架没有使用任何东西)。