PHP面向对象访问方法和$this问题

PHP面向对象访问方法和$this问题,php,Php,我使用Yii框架已经有一段时间了,但我知道我正在尝试基于MVC架构开发自己的简约框架。 假设我有一个父模型ModelCore,它扩展了所有其他模型(也提到了PageModel)。它定义了一种方法: public function find( $condition ){ $sql = "SELECT * FROM {$this->table()} WHERE {$condition} LIMIT 1"; // executing query and returning the

我使用Yii框架已经有一段时间了,但我知道我正在尝试基于MVC架构开发自己的简约框架。 假设我有一个父模型ModelCore,它扩展了所有其他模型(也提到了PageModel)。它定义了一种方法:

public function find( $condition ){
    $sql = "SELECT * FROM {$this->table()} WHERE {$condition} LIMIT 1";
    // executing query and returning the result
}
当我想用这种方式从其他类(urlsolver)调用此方法时,我陷入了困境:

//...
elseif ( PageModel::find("`url` = '{$bit}'") != NULL ) {
//...

脚本以致命错误结束:调用未定义的方法URLresolver::table()

如果有人能向我解释这些东西是如何在PHP中工作的,以及我如何能够轻松访问一个方法,我将不胜感激


非常感谢

如果您使用
它指的是一个静态函数。如果您创建了一个对象,则必须按照以下方式执行:

$obj = new PageModel( );
$obj->find(" YOUR QUERY ");

public function find( $q ){ }
如果您有一个静态方法(在这些函数中,$),则不会引用对象,因为您没有创建新的<代码>对象

PageModel::find( $q ){}

public static function find ( $q ){ }

如果您使用
::
它指的是一个静态函数。如果您创建了一个对象,您必须像这样做:

$obj = new PageModel( );
$obj->find(" YOUR QUERY ");

public function find( $q ){ }
如果您有一个静态方法(在这些函数中,$),则不会引用对象,因为您没有创建新的<代码>对象

PageModel::find( $q ){}

public static function find ( $q ){ }

脚本以致命错误结束:调用未定义的方法
URLresolver::table()


查找调用似乎不存在的
table()
函数的位置,以及…这是一个
静态方法吗?否则,您不需要
符号,但是
->
脚本以致命错误结束:调用未定义的方法
URLSolver::table()


查找调用似乎不存在的
table()
函数的位置,以及…这是一个
静态
方法吗?否则,您不需要
符号,但是
->
错误是不言自明的:
URLresolver
类不实现(或继承)一个名为
table
的方法。您确定不是要用该名称调用属性吗?

这个错误是不言自明的:
URLresolver
类没有实现(或继承)一个名为
table
的方法。你确定不是要用这个名称调用属性吗?

非常有用。我不知道::引用静态函数。我将尝试用其他方式处理它。谢谢。非常有用。我不知道::引用静态函数。我将尝试用其他方式处理它。谢谢。