如何设置mysqli_result::num_rows

How to set mysqli_result::num_rows

出于模拟目的,我扩展了 mysqli_result class:

class MysqliResultMock extends mysqli_result {
   ...
}

现在,我需要为它的成员 'num_rows' 覆盖它 returns 的内容,但不幸的是 $this->num_rows = 123;它根本无法设置(我在写这一行时遇到致命错误:

Fatal error: Cannot directly set the property MysqliResultMock::$num_rows in DbTest.php on line 13)

有什么办法可以做到吗?

谢谢。

哈哈,我找到答案了

你只需要添加 public $num_rows;行到 class,明确地使其可写。像这样:

class 结果扩展 mysqli_result {

public $num_rows;

public function __construct()
{
    $this->num_rows = 6;

...

然后你可以在一个实例上调用 mysql_num_rows() ,它将 return 给定的 num_rows 正确。