Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/251.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 对于与类的属性匹配的每个列名,是否有任何短方法可以将数据加载到类的属性中?_Php_Oop_Class_Properties_Iterator - Fatal编程技术网

Php 对于与类的属性匹配的每个列名,是否有任何短方法可以将数据加载到类的属性中?

Php 对于与类的属性匹配的每个列名,是否有任何短方法可以将数据加载到类的属性中?,php,oop,class,properties,iterator,Php,Oop,Class,Properties,Iterator,我想使用对象的构造函数将数据加载到对象的实例中,然后编写 $this->property=$row["colname"] 每次都是针对每一个属性 mysql_fetch_object函数将数据作为对象获取,但我不确定是否可以从内部将对象的实例分配给某个对象。否则我会用 __construct($object) { $this=$object; } //doesn't give any syntax error 也许我应该研究属性的迭代和使用 foreach($object as $k

我想使用对象的构造函数将数据加载到对象的实例中,然后编写

$this->property=$row["colname"] 
每次都是针对每一个属性

mysql_fetch_object函数将数据作为对象获取,但我不确定是否可以从内部将对象的实例分配给某个对象。否则我会用

__construct($object) { $this=$object; } //doesn't give any syntax error
也许我应该研究属性的迭代和使用

foreach($object as $key => $value) $value=$object[$key];
或者我可以像这样分配任务吗

$this=$object;

在构造函数中?

您不能将任何内容分配给
$this
,否则会出现错误

我会这样做:

class SomeObject 
{
    function __construct($base = null)
    {
        if ($base != null)
        {
            $this->load($base);
        }

        // continue construction as you normally would
    }

    function load($object)
    {
        foreach ($object as $key => $value)
        {
            $this->$key = $value;
        }
    }
}
然后,您可以选择在构建时或在构建后通过
load()
将数组加载到对象中


用法示例:
演示:您不能将任何内容分配给
$this
,否则会出现错误

我会这样做:

class SomeObject 
{
    function __construct($base = null)
    {
        if ($base != null)
        {
            $this->load($base);
        }

        // continue construction as you normally would
    }

    function load($object)
    {
        foreach ($object as $key => $value)
        {
            $this->$key = $value;
        }
    }
}
然后,您可以选择在构建时或在构建后通过
load()
将数组加载到对象中


用法示例:
演示:因为如果我能将$this赋值给构造函数的参数,我会使用它。你能解释一下“$base=null”的作用吗?@UğurGümüşhan它只是
$base
的默认参数,所以如果你想创建不带基的对象,它可以这样做。是的,就像php文档所说的那样,这是可行的,我确信这一点。我想知道赋值构造($object){$this=$object;}正如我所说的,你不能把
$this
赋值给任何东西,因为如果我能把$this赋值给构造函数的参数,我会用它。你能解释一下“$base=null”的作用吗?@UğurGümümühan这只是
$base
的默认参数,所以,如果你想创建一个没有基的对象,它可以做到。是的,就像php文档所说的那样,这是可行的,我确信这一点。我想知道赋值uu构造($object){$this=$object;}正如我所说的,你不能给任何东西赋值
$this