-2

これについて調査しましたが、探していたものが見つかりませんでした。

class headerStyle{
 // now  creating our CONSTRUCTOR function
 function __construct($args=array()) {
     $this->fields = array('background','color','fontSize','backgroundUrl','imagePosition','Width','Height','backgroundSize','margin','padding','backgroundRepeat');
      foreach ($this->fields as $field) {
                $this->{"$field"} = $args["$field"];
                 }
         }
}


$style = new headerStyle(
       array(
         background =>"#DEDEDC",
         color=>"#F5F3F4",
         fontSize=>"24px",
         backgroundUrl=>"_images/bodyBg1.jpg",
         backgroundSize=>"50% 50%",
         padding=>"10px 0px 0px 0px",
         margin=>"0px 0px 0px 0px",
         width=>"100%",
         height=>"60px",
         imagePosition=>"top-left",
            )
);

値を与える代わりに、background=>$_post['headerBg']; のような動的変数を渡す必要があります。

4

2 に答える 2

2

あなたはほとんどそこにいます。$_POST['headerBg'];PHP の POST 配列には(大文字であることに注意してください) でアクセスできます。

class headerStyle{
 // now  creating our CONSTRUCTOR function
 function __construct($args=array()) {
     $this->fields = array('background','color','fontSize','backgroundUrl','imagePosition','Width','Height','backgroundSize','margin','padding','backgroundRepeat');
      foreach ($this->fields as $field) {
                $this->{"$field"} = $args["$field"];
                 }
         }
}


$style = new headerStyle(
       array(
         background =>$_POST['headerBg'],
         color=>"#F5F3F4",
         fontSize=>"24px",
         backgroundUrl=>"_images/bodyBg1.jpg",
         backgroundSize=>"50% 50%",
         padding=>"10px 0px 0px 0px",
         margin=>"0px 0px 0px 0px",
         width=>"100%",
         height=>"60px",
         imagePosition=>"top-left",
            )
);
于 2012-11-27T10:15:55.490 に答える
0

配列の設定が間違っています。数値キーがあり、連想配列が必要です。デフォルトを定義してから、array_merge()設定されている要素でデフォルトを上書きするために使用します。

function __construct($args=array()) {
     $defaults = array('background' => '', 'color' => '', 'fontSize' => '', 'backgroundUrl' => '', 'imagePosition' => '', 'Width' => '', 'Height' => '', 'backgroundSize' => '', 'margin' => '', 'padding' => '', 'backgroundRepeat' => '');

     $this->fields = array_merge($defaults, $args);
}

要素をハードコーディングするか、から取得することで、試したとおりに使用できます$_POST

$style = new headerStyle(
   array(
     background =>'',
     color=>"#F5F3F4",
     fontSize=>"24px")
);
于 2012-11-27T10:23:27.583 に答える