0

データベースからフィールドを取得できます。これは、id、height、width、top などのいくつかのプロパティを持つオブジェクトを返します。これらのプロパティの 1 つは、プロパティの名前の配列を含む props と呼ばれます。たとえば、('top','bottom','left','right') のようになります。今私がやろうとしているのは、$props 値を反復処理し、元のオブジェクトからプロパティを取得して、文字列に追加することです。だから、データベースからフェッチされたクラスが $element と呼ばれているとしましょう、私は持っています:

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

しかし、私が $style top : ; left : ; bottom : ; right : ;にたどり着くのは、明らかに$element->{$property}コードの一部が何も返していないようなものです。多くの代替案を試しましたが、何が起こっているのかわかりません。誰か助けてもらえますか?

4

1 に答える 1

0

実際にオブジェクトに次のようなプロパティがあるtop場合、要素オブジェクトのtop | left | bottom | rightプロパティに到達しようとしている場合は中括弧は必要ないため、このアプローチを試してみます。

$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);
}
于 2013-01-13T04:27:18.313 に答える