在PHP中_get()函数接受一个属性名作为输入参数,可获得该属性的值,成功返回TRUE,否则返回FALSE。可我经过调试,实在是调试不出我想要的结果。
代码如下: class OOPDEMO{
var $username;
var $city;
protected $wage;
function _get($proname){
echo "_get() called<br>";
$vars =array("username","city");
if(in_array($proname,$vars)){
return $this->$proname;
}else{
return "no such variable";
}
}
}
$oopdemo = new OOPDEMO();
$oopdemo->username="kevin.young";
echo $oopdemo->username."<br>";
echo $oopdemo->age;我要得到这样的结果:
kevin.young
_get() called
no such variable可是这个程序跑起来却得不到这样的结果,请教高人指点!
代码如下: class OOPDEMO{
var $username;
var $city;
protected $wage;
function _get($proname){
echo "_get() called<br>";
$vars =array("username","city");
if(in_array($proname,$vars)){
return $this->$proname;
}else{
return "no such variable";
}
}
}
$oopdemo = new OOPDEMO();
$oopdemo->username="kevin.young";
echo $oopdemo->username."<br>";
echo $oopdemo->age;我要得到这样的结果:
kevin.young
_get() called
no such variable可是这个程序跑起来却得不到这样的结果,请教高人指点!
var $username;
var $city;
protected $wage;
function __get($proname){
echo "_get() called<br>";
$vars =array("username","city");
if(in_array($proname,$vars)){
return $this->$proname;
}else{
return "no such variable";
}
}
}
$oopdemo = new OOPDEMO();
$oopdemo->username="kevin.young";
echo $oopdemo->username."<br>";
echo $oopdemo->age;
<?php
class OOPDEMO{
var $username;
var $city;
var $info = array();
protected $wage;
function __set($proname,$value){
$this->info[$proname] = $value;
}
function __get($proname){
if(array_key_exists($proname,$this->info)){
return $this->info[$proname].' by __get()';
}else{
return "no such variable";
}
}
}
$oopdemo = new OOPDEMO();
$oopdemo->username="kevin.young";
$oopdemo->nickname="kevin";
$oopdemo->info['user']="young";
echo $oopdemo->username."<br>";
echo $oopdemo->nickname."<br>";
echo $oopdemo->user."<br>";
echo $oopdemo->age;
?>