0

このPHPコードを使用して、デフォルトの単一変数を使用してPHPクラスを作成しています。しかし、それは完全には機能しません。

Note:データを単一の変数に格納する必要があります。

<?PHP

class hello
{
    public $data;
}

$test = new hello();

$test->data->user1->name = "Charan";
$test->data->user1->sex  = "male";
$test->data->user1->age  = "25";

$test->data->user2->name = "Kajal";
$test->data->user2->sex  = "female";
$test->data->user2->age  = "21";


print_r($test->data->user1);


?>

このエラーが発生しました:

ここに画像の説明を入力してください

私を助けてください、それを修正する方法は?

4

2 に答える 2

4

変数を宣言しただけで、「型」として設定していません。たとえば、オブジェクトのプロパティに値を割り当てようとしていますが$data、オブジェクトではありません-何もありません。クラスのコンストラクターでオブジェクトを割り当てるか$data、クラスの外部から割り当てる必要があります。

コンストラクター:

class hello
{
    public $data;

    public function __construct() {
        $this->data = new StdClass();

        // assuming you want the users set up here as well
        $this->data->user1 = new StdClass();
        $this->data->user2 = new StdClass();
    }
}

外から:

// assume we are use the same class definition from your orginal example
$test = new hello();
$test->data = new StdClass();
$test->data->user1 = new StdClass();
$test->data->user2 = new StdClass();

$test->data->user1->name = "Charan";
$test->data->user1->sex  = "male";
$test->data->user1->age  = "25";

$test->data->user2->name = "Kajal";
$test->data->user2->sex  = "female";
$test->data->user2->age  = "21";
于 2012-12-24T08:31:54.010 に答える
2

クラスを柔軟にするには、hello クラス内の $data 変数を配列にする必要があります。

例えば:

<?php

class Person{

public $data = array();

function __construct(){}

}

$person = new Person();
$person->data['name'] = 'Juan Dela Cruz';

echo $person->data['name'];

?>
于 2012-12-24T08:35:18.807 に答える