这是类:
class abc extend def {
public static function count_all() {
$sql = "SELECT COUNT(*) FROM " . self::$table_name;
$sql= $this -> conn -> prepare($sql);
$sql -> execute();
return $row = $sql -> fetchAll();
}
}
创建视图后
$abs = new abs();
$total_count = abc::count_all();
echo $total_count;
它应该回显总数但是当我回显这个时它会显示错误
Fatal error: Using $this when not in object context in
我如何解决它提前问候。
我发现我这样做是正确的,关于PHP开发步骤。
public function count_all() {
$sql = "SELECT COUNT(*) FROM " . self::$table_name;
$result = $this -> conn -> prepare($sql);
$result -> execute();
return $total_found = $result->fetchColumn();
}
在这个视图中调用类。
<?php echo $class->count_all(); ?>
PHP允许您通过调用类(MyClass::instanceMethod)或调用实例类方法来访问实例方法。但这不是在你的代码中完成的,它不是面向对象编程的标准。
你在静态方法中使用了$this,把你的方法改为this
public function count_all() {
/* Use $this->table_name for better design*/
$sql = "SELECT COUNT(*) FROM " . self::table_name;
$sql= $this -> conn -> prepare($sql);
$sql -> execute();
return $row = $sql -> fetchAll();
}
然后你可以像这样调用
$abs = new abs();
$total_count = $abs->count_all();
echo $total_count;