小编Ste*_*ook的帖子

PHP OOP:如何将数据库行作为对象?

我可以在选择单行时做到这一点,但是我不知道如何为多行数据做这件事.

对于单行,我只是实例化一个新对象,该对象在幕后执行许多操作,从而基本上从数据库中生成一行作为我们的对象.

例:

$object = new Classname($param);
foreach($object->row as $key=>$value) {
    echo $key.":".$value."\n";
}

//output
id:1
firstname:steve
lastname:took
etc...
Run Code Online (Sandbox Code Playgroud)

这里任何聪明的人都能指出我正确的方向吗?

注意:只是希望能够为每一行创建一个对象,而不是一个具有嵌套数组的对象

编辑:抱歉$ object-> row是存储数据库中所选行的类的成员

php oop

4
推荐指数
1
解决办法
5985
查看次数

PHP OO:覆盖抽象类的属性

有人可以建议吗?

我们有一个抽象的基类,它有一些属性和一些方法.

从继承类调用方法(带参数),通常的目的是将传递的参数设置为基类的属性,除非它们看起来不会覆盖默认值.

如果我在abstract(base)类的构造函数中设置了一个值(用于测试目的)它工作正常,并且传递给构造函数的任何其他东西都可以工作,但我们想要做的是获取setErrors方法来实际设置属性的值.

例:

//abstract base class

private $errors = array();//the property we want to overide

public function __construct()
{
$this->errors[] = "This is a required field";//for testing purposes only this works
}

public function setErrors($error)
{
var_dump($error);//this proves that $error is passing something...
$this->errors[] = $error;//this doesnt work(override the property)
var_dump($this->error);//the property now has the $error value...
}

public function getErrors()
{
return "<li>".implode("</li>\n",$this->errors);
}
Run Code Online (Sandbox Code Playgroud)

我不确定这是否与基类是抽象的有关,即它没有被实例化.请有人解释为什么这不起作用?提前感谢您的兴趣.

编辑我们不是要试图从基层继承私有财产

我们想要做的是使用set方法覆盖属性,然后使用公共get方法返回属性.

php oop

2
推荐指数
1
解决办法
2745
查看次数

标签 统计

oop ×2

php ×2