2012-07-26 119 views
0

我需要我應該怎麼做一些指導或參考值。 我應該做的是,有一個名爲貓類結構,並具有輸出新對象的靜態方法。聲明對象和輸出的值

class Cat{ 
    public $name; 
    public $age; 
    public $string; 

    static public function ToData($Cat) { 
     $input = ""; 
     foreach ($Cat as $key => $value) { 
      $input .= "object: " . $key . "</br>"; 
     } 
     return $input; 
    } 
} 

$name = "meow"; 
$age = "12"; 
$string = "'test', 'sample', 'help'"; 
$Cat = array($name, $age); 
$output = Cat::ToData($Cat); 
echo $output; 

這是我能拿出 這裏的最好的事情是這個問題,他們說我只是用一個數組,而不是一個對象。 我用數組,因爲我已經把在$目錄中的值,因此可以對參數進行傳遞。

如果你想這些值設定爲這裏的對象

回答

1

是你做了什麼

... 
foreach ($Cat as $key => $value) { 
    $this->$key = $value; 
} 
... 

$name = "meow"; 
$age = "12"; 
$Cat = array("name"=>$name,"age"=> $age); 

$cat = new Cat(); 
$cat->toData($Cat); 

echo $cat->name; 
// meow 

更新

現在我得到一個更好的主意,你正在嘗試做的,這是怎麼了您的類將是這樣的:

class Cat{ 
    public $name; 
    public $age; 
    public $string; 

    static public function ToData($Cat) { 
     $obj = new self(); 
     $obj->name = $Cat["name"]; 
     $obj->age = $Cate["age"]; 
     $obj->string = $Cate["string"]; 
     return $obj; 
    } 

    // echo 
    public function __toString(){ 
     return "$this->name - $this->age - $this->string"; 
    } 
} 

現在你可以設置你的價值觀

$ name =「meow」; $ age =「12」; $ string =「'test','sample','help'」; $ Cat =數組($ name,$ age,$ string); $ output = Cat :: ToData($ Cat); echo $ output;

注意$output是一個對象

+0

肯定的,但它在陣列。我需要它的屬性的對象。 – 2012-07-26 05:35:12

+0

ISEE,看到我更新 – Ibu 2012-07-26 05:39:36

+0

是感謝。你也可以檢查我的更新。這是我的難題。 string =「'test','sample','help'」。我也想輸出不同的屬性。 string1,string2,string3。 – 2012-07-26 05:45:56

1

看起來像它在PHP的面向對象編程概念的分配。我相信這就是你想要完成的,並有評論解釋這些步驟。

class Cat{ 
    public $name; 
    public $age; 

    // Output the attributes of Cat in a string 
    public function ToData() { 
     $input = ""; 
     $input .= "object: name :".": ".$this->name." </br>"; 
     $input .= "object: age :".": ".$this->age." </br>"; 
     return $input; 
    } 
} 

$name = "meow"; 
$age = "12"; 

// Instantiate Cat 
$Cat = new Cat(); 
$Cat->name = $name; 
$Cat->age = $age; 

// Output Cat's attributes 
$output = $Cat->ToData(); 
echo $output; 
+0

這就是我說的。你還可以檢查我的更新。因爲我想輸出不同的屬性。 string1,string2,string3。 string =「'test','sample','help'」。 – 2012-07-26 05:46:51

+0

你應該可以使用我給你的例子來自己添加'$ string'。它和'$ name'和'$ age'一樣。至少做一點你自己的功課。 :) – uzyn 2012-07-26 05:49:55

+0

哈哈我真的明白了。也許我應該把整個事情和我的問題放在這裏。我只是怕有人會使用stackoverflow來抓我。 :)我現在非常絕望。我會更新上面的代碼。 – 2012-07-26 05:56:39