<?php
class test{
var $a;
var $b;
function _set($property,$value)
{
echo "该对象不存在";
}
function __get($property)

     echo "该对象不存在"; 
  }
};
$c=new test;
$c->a="10";
$c->b="20";
$c->d="30";
echo $c->a."<br>";
echo $c->b."<br>";
echo $c->d."<br>";
?>
为什么设置d的时候.不会显示该对象不存在.而且会输出30?php 5环境.求高手解答

解决方案 »

  1.   

    为什么非要显示对象不存在? 
    你都赋值给d属性了, 当然会显示,在PHP中, _set和_get几乎是废的
      

  2.   

    <?php class test{
        var $a;
        var $b;
       /* 
       function _set($property,$value)
        {
            echo "该对象不存在";
        }
        function _get($property)
        { 
            echo "该对象不存在"; 
         }
         */
    };
    $c=new test;
    $c->a="10";
    $c->b="20";
    $c->d="30";
    echo $c->a."<br>";
    echo $c->b."<br>";
    echo $c->d."<br>";
    ?>//output
    10
    20
    30
    无论注解部份是否存在, 答案都一样