Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.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 oop Mysql获取变量属性_Php_Mysql_Mysqli - Fatal编程技术网

PHP oop Mysql获取变量属性

PHP oop Mysql获取变量属性,php,mysql,mysqli,Php,Mysql,Mysqli,我可以设法从我的数据库中获取一个字段,该字段返回一个具有两个属性(如id、高度、宽度、顶部等)的对象。。。其中一个属性叫做props,它包含我需要的属性名称数组,例如:('top','bottom','left','right')。现在我要做的是迭代$props值,从原始对象获取属性,并将其添加到字符串中。假设从数据库中提取的类名为$element,我有: $props=$element->props; foreach($props as $property){

我可以设法从我的数据库中获取一个字段,该字段返回一个具有两个属性(如id、高度、宽度、顶部等)的对象。。。其中一个属性叫做props,它包含我需要的属性名称数组,例如:('top','bottom','left','right')。现在我要做的是迭代$props值,从原始对象获取属性,并将其添加到字符串中。假设从数据库中提取的类名为$element,我有:

    $props=$element->props;
    foreach($props as $property){
        $style .= $property." : ".$element->{$property}."; ";
    }
    unset($property);

但我最终的$style是类似于
top:;左:;底部:;右:$element->{$property}
部分没有返回任何内容。我尝试了很多替代方法,但我不知道发生了什么,有人能帮我吗?

如果您的对象确实有一个属性,例如
top
,我会尝试这种方法,因为如果您试图到达元素对象的上|左|下|右属性,则不需要花括号:

$props=$element->props;
foreach($props as $property){
    $style .= $property . " : " . $element->$property . "; ";
}
如果我可以建议一个小的调整,使您在这里所做的事情更加明显,字符串连接可能会变得非常难看,特别是如果您使用的分号在PHP中很有意义:

$props = $element->props;
foreach($props as $property){
    $style_format = '%s : %s; ";
    $style .= sprintf($style_format, $property, $element->$property);
}

您确定有
$element->top
,或
$element->left
,或
$element->bottom
$element->right
?您介意从模具(打印($element))复制结果吗@CoryJThompson stdClass对象([id]=>1[type]=>image[top]=>266[left]=>285[width]=>195[height]=>184[props]=>Array([0]=>position[1]=>border width[2]=>width[3]=>height[4]=>top[5]=>left[6]=>边框颜色[7]=>margin))@qwertymk是的,我已经分别检查了它们,它们work@hakim-新浪对我有用我试过不用花括号,我甚至试过echo$element->$property;这不会返回任何内容:(那么我建议$element->top等不存在;至少不像您预期的那样。是的,我认为这就是问题所在,由于某些原因,每个属性的开头都有额外的空间!无论如何,感谢您的帮助