Php 数据库行到对象属性
在MySQL中,我有一个包含Php 数据库行到对象属性,php,constructor,Php,Constructor,在MySQL中,我有一个包含ID和name列的表 对数据库的查询会将每个查询行作为一个数组提供给我: $row = array('ID' => '3', 'name' => 'John'); 我还有一个PHP类 class Person { var $ID = ''; var $name = ''; } 我如何为人写一个解释,这样我就可以去了 $current = new Person($row); echo $current->ID; // 3 echo
ID
和name
列的表
对数据库的查询会将每个查询行作为一个数组提供给我:
$row = array('ID' => '3', 'name' => 'John');
我还有一个PHP类
class Person {
var $ID = '';
var $name = '';
}
我如何为人写一个解释,这样我就可以去了
$current = new Person($row);
echo $current->ID; // 3
echo $current->name; // John
与变量一样,您也可以具有变量属性:
class Person {
var $ID = '';
var $name = '';
public function __construct($row) {
foreach($row as $key => $value) {
# `$this->$key =` sets the property of $this named whatever’s in $key.
$this->$key = $value;
}
}
}
不过,您可能希望将其作为一个静态方法(fromRow
?),以避免PHP中的重载混乱。您可能还希望筛选密钥;这要视情况而定
就像变量一样,您可以拥有变量属性:
class Person {
var $ID = '';
var $name = '';
public function __construct($row) {
foreach($row as $key => $value) {
# `$this->$key =` sets the property of $this named whatever’s in $key.
$this->$key = $value;
}
}
}
不过,您可能希望将其作为一个静态方法(fromRow
?),以避免PHP中的重载混乱。您可能还希望筛选密钥;这要视情况而定
也许我应该提到,我不是在寻找像$this.ID=$row['ID']
这样的东西,而是一种自动性,因为这只是一个高维问题的最小示例。顺便说一句,如果您正在寻找一个提供此功能的库,那么您描述的概念就是对象关系映射(ORM)(与将自己实现为一种学习体验相反)Doctrine和Propel是PHP的两种流行方法。也许我应该提到,我不希望看到像$this.ID=$row['ID']
但这是一种自动性,因为这只是一个高维问题的最小示例。顺便说一句,如果您正在寻找一个提供这种(而不是将自己实现为学习体验)的库,那么您所描述的概念是对象关系映射(ORM),这两个原则和推进是PHP的两个流行原则。