你能用PHP编写类外的类函数吗?

时间:2008-11-26 07:54:07

标签: php

在C ++中,我用这种方式编码:

//foo.h    
class cBar
{
    void foobar();
}

//foo.cpp
void cBar::foobar()
{
    //Code
}

我尝试在PHP上执行此操作,但解析器会抱怨。 PHP的文档也没有帮助。这可以用PHP完成吗?

3 个答案:

答案 0 :(得分:4)

没有。您需要在类块中包含所有函数定义。如果在一个单独的结构中定义你的函数会让你感觉更好,你可以使用一个接口。

interface iBar
{
    function foobar();
}


class cBar implements iBar
{
    function foobar()
    {
        //Code
    }
}

我建议你习惯以新的方式编码。使用单一语言可以很容易地进行代码编码,但如果你想在各种语言中做同样的事情,我认为你正在进行一场失败的战斗。

答案 1 :(得分:1)

你不能以同样的方式真正做到这一点。

但您可以使用class abstractioninterfaces。两者之间的主要区别在于,接口不允许您指定函数体,抽象对象中的(非抽象)方法可以包含各种默认行为。

<强>抽象:

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
    }
}

答案 2 :(得分:0)

该语言并不真正提供此功能,但如果确实需要它,则可以安装ClassKit扩展名,以便在运行时进行一些动态类修改。