0

これを行う方法についてのガイドまたはリファレンスが必要です。私がすべきことは、Cat という名前のクラス構造を持ち、新しいオブジェクトを出力する静的メソッドを持つことです。

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;

これが私がここで思いつくことができる最善のことです。問題は、オブジェクトではなく配列を使用しただけだと彼らは言いました。パラメータで渡すことができるように $Cat に値を設定する必要があるため、配列を使用しました。

4

2 に答える 2

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 = "ニャー"; $age = "12"; $string = "'テスト', 'サンプル', 'ヘルプ'"; $Cat = array($name, $age,$string); $output = Cat::ToData($Cat); $ 出力をエコーし​​ます。

$outputオブジェクトであることに注意してください

于 2012-07-26T05:33:17.990 に答える
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;
于 2012-07-26T05:38:08.803 に答える