為什么是9呢?不解
<?php
class test{
? ? protected $a=9,$b=2,$c;
? ? public $d;
? ? function __set($n,$v){
? ? ? ? return $this->$n=$v+2;
? ? }
? ? function __get($name){
? ? ? return $this->$name+2; ?
? ? }
}
?$a=new test();
?$a->b=5;
?echo $a->b;
<?php
class test{
? ? protected $a=9,$b=2,$c;
? ? public $d;
? ? function __set($n,$v){
? ? ? ? return $this->$n=$v+2;
? ? }
? ? function __get($name){
? ? ? return $this->$name+2; ?
? ? }
}
?$a=new test();
?$a->b=5;
?echo $a->b;
2016-10-22
舉報(bào)
2016-10-22
$a->b=5 ?執(zhí)行的是 __set($n,$v); ?return $this->$n=$v+2; ?這里a對(duì)象中的$b屬性進(jìn)行5+2=7的賦值。最后你輸出echo $a->b 時(shí)執(zhí)行__get($name)?? return $this->$name+2; ? 又加了2 ?所以是9 。 這跟類中你自己定義的$b=2 ,無(wú)關(guān) 。因?yàn)槟憬o它重新賦值了。
2016-10-22
你首先創(chuàng)了一個(gè) 類test()的對(duì)象$a,后又創(chuàng)了一個(gè)類test()中不存在的屬性b,你要對(duì)b賦值并輸出,所以你的類中有__set(),__get,兩個(gè)函數(shù),在對(duì)b賦值時(shí)就訪問(wèn)了賦值函數(shù)__set(),輸出時(shí)既訪問(wèn)了讀取函數(shù)__get..........個(gè)人看法,哈哈
2016-10-22
你首先創(chuàng)了一個(gè) 類test()的對(duì)象$a,后又創(chuàng)了一個(gè)類test()中不存在的屬性b,你要對(duì)b賦值并輸出,所以你的類中有__set(),__get,兩個(gè)函數(shù),在對(duì)b賦值時(shí)就訪問(wèn)了賦值函數(shù)__set(),輸出時(shí)既訪問(wèn)了讀取函數(shù)__get..........個(gè)人看法,哈哈
2016-10-22
你首先創(chuàng)了一個(gè) 類test()的對(duì)象$a,后又創(chuàng)了一個(gè)類test()中不存在的屬性b,你要對(duì)b賦值并輸出,所以你的類中有__set(),__get,兩個(gè)函數(shù),在對(duì)b賦值時(shí)就訪問(wèn)了賦值函數(shù)__set(),輸出時(shí)既訪問(wèn)了讀取函數(shù)__get..........個(gè)人看法,哈哈