2012-07-26 65 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