2014-09-13 78 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 2014-09-13 11:03:18

+1

'pet_owner'已被設置爲'12',完全像它應該是 – 2014-09-13 11:03:34

+1

爲什麼你要實例化Pet兩次?並在每種情況下將對象分配給相同的變量? – 2014-09-13 11:04:19

回答

0

$owner = '12';,而不是$owner = 12;

否則會顯示屬性INT(12)

,還可以使用$pet = new Pet;此一次而已。