如何将$ this传递给非对象函数

时间:2011-10-23 00:44:02

标签: php

当我将$this传递给某个函数时,我收到错误消息,The function does not exists.

// In class A
class A extents F
{
    function m()
    { 
        Do($this);
    }

    function t()
    {
    }
}

class B extents F
{
    function m()
    { 
        Do($this);
    }

    function t()
    {

    }
}

// Some where in .inc.php file
function Do(F $obj)
{
    $obj->t();
}

实际上,我有很多类继承自一个基类。所有这些课程都有一些共同的功能。我需要一个功能来处理它们。

1 个答案:

答案 0 :(得分:1)

您不能将Do()用作函数名称,因为它是reserved word

此外,您无法使用extents,因为它是extends

另外,你不能使用extends F因为你没有F级

这个有效

http://sandbox.phpcode.eu/g/450ee/1

<?php
class F{

}
class A extends F
{
    function m()
    { 
        _Do($this);
    }

    function t()
    {
        echo "<br />Class A works";
    }
}

//removed unused class B
$a = new A();
$a->m();

// Some where in .inc.php file
// Changed Do to _Do, because Do is reserved word
function _Do(A $obj)
{
    $obj->t();
}