【发布时间】:2017-01-13 15:05:11
【问题描述】:
在一个表类中,我想使用简单的函数,也想使用静态函数,我该怎么做? 这是我当前的代码(不起作用)
在我的控制器中,我只想做:Table::get('posts'),它直接调用函数check_table($table)。
<?php
namespace Fwk\ORM;
use Fwk\Application;
use Fwk\Database\Database;
class Table extends Application {
public function __construct()
{
$this->db = new Database();
}
public static function get($table) {
if($this->check_table($table)) {
return "ok";
}
}
public function check_table($table) {
$r = $this->$db->query("SELECT 1 FROM $table");
return $r;
}
}
?>
【问题讨论】:
-
你真的知道为什么你需要静态方法吗?
-
目前我想要的唯一静态函数是get,但其他的将在接下来的几天内添加。
-
这将是一个非常糟糕的代码设计,将静态和非静态混合在一起,而且您实际上永远不需要/不应该使用静态方法,因为它们不可测试。而我之前的问题是为什么你需要静态方法。你应该问问自己!
-
我认为你不能在静态函数中使用它,因为类的所有实例只有一个,然后没有与实例链接
-
好的,所以在我的情况下,最好有一个包含所有静态方法的文件和另一个包含简单函数的文件?
标签: php function static self construct