2014-09-13 7 views
-2

У меня есть простой класс:Назначение свойств объекта

class Pet { 
var $pet_type; 
var $pet_exist = true; 
var $pet_name; 
var $pet_owner; 
public static $pet_types= array (1 =>"Nothing to choose...", 
          2 =>"Dog", 
          3 =>"Cat", 
          4 =>"Guinea pig", 
          5 =>"Turtle", 
          6 =>"Fishes", 
          7 =>"Other"); 

function setAttr($pet_exist,$pet_type,$pet_name,$pet_owner) { 
    $this->pet_exist=$pet_exist; 
    $this->pet_name=$pet_name; 
    $this->pet_type=$pet_type; 
    $this->pet_owner=$pet_owner; 
} 

Я стараюсь это

$pet = new Pet; 
$owner = 12; 
$pet = new Pet; 
$pet->setAttr("12","12","12",$owner); 
var_dump($pet); 

Я вижу следующий результат:

object(Pet)#2 (4) { ["pet_type"]= string(2) "12" ["pet_exist"]= string(2) "12" ["pet_name"]= string(2) "12" ["pet_owner"]= int(12) } 

Почему не является собственностью pet_owner набор?

+1

'[" pet_owner "] = int (12)'. ** ** установлено, что случилось? – Sugar

+1

'pet_owner' был установлен в' 12', точно так же, как и должно быть –

+1

Почему вы создаете экземпляр Pet дважды? и присвоение объекта одной переменной в каждом случае? –

ответ

0

, если вы хотите, как использование строки, как это,

$owner = '12'; вместо $owner = 12;

иначе он будет показывать свойства Int (12),

, а также использовать $pet = new Pet; это только один раз. .

Смежные вопросы