在C++中,我这样的代码:你能在PHP的类之外编写一个类函数吗?
//foo.h
class cBar
{
void foobar();
}
//foo.cpp
void cBar::foobar()
{
//Code
}
我试图做到这一点的,但是PHP解析器会抱怨。 PHP的文档也没有帮助。这可以在PHP中完成吗?
在C++中,我这样的代码:你能在PHP的类之外编写一个类函数吗?
//foo.h
class cBar
{
void foobar();
}
//foo.cpp
void cBar::foobar()
{
//Code
}
我试图做到这一点的,但是PHP解析器会抱怨。 PHP的文档也没有帮助。这可以在PHP中完成吗?
号您需要包括类块内所有的函数定义。如果在一个单独的结构中定义你的函数使你感觉更好,你可以使用一个接口。
interface iBar
{
function foobar();
}
class cBar implements iBar
{
function foobar()
{
//Code
}
}
我建议只是习惯以新的方式进行编码。使用单一语言编码很容易,但我认为如果你想要在不同的语言中做同样的事情,那么你就是在拼命地战斗。
你不能以相同的方式做到这一点。不过,您可以使用class abstraction和interfaces。两者之间的主要区别在于,接口不允许指定函数体,抽象对象中的抽象方法(非抽象)可以容纳各种默认行为。
抽象:
abstract class cBar
{
// MUST be extended
abstract protected function foobar();
// MAY be extended
protected function someMethod()
{
// do stuff
}
}
class cBarExtender extends cBar
{
protected function foobar()
{
// do stuff
}
}
接口:
interface cBar
{
// MUST be implemented
protected function foobar();
}
class cBarImplementation implements cBar
{
protected function foobar()
{
// do stuff
}
}
语言并没有真正提供此功能,但如果你真的想它,您可以安装ClassKit扩展,它可以让你在运行时做一些动态类修改。
每个人都给出了很好的答案。但是我已经选择了你的答案,因为这个引用:在一种语言中很容易编码,但是我认为如果你想要在不同的语言中做同样的事情,你就是在争夺一场失败的战斗。 – MrValdez 2008-11-26 08:39:19