<?php
class Ref{
public $x = '888888888';
public function __construct(){
echo 'father';
}

public function reftest(){
$fun = 'test';
$ss = '$this->y';
$funstr = '$this->'.$fun.'('.$ss.');'; 
echo $funstr ; 
echo '<br/>';
eval($funstr);
}

}
----------------------------------------<?php
require 'Ref.php';
class SonRef extends Ref {
public $y=array('a','b','c');
public function test($str){
print_r($str); 
}

}$k = new SonRef();
$k->reftest();

解决方案 »

  1.   

    class GirlRef extends Ref {
       
       
    }请问:GirlRef 和 SonRef 不会共享一个Ref吧? 是的话我写的东西就全完蛋了。
      

  2.   

    class GirlRef extends Ref{}请问:SonRef 和 GirlRef 不会共享一个Ref吧? 是的话我写的东西就全部完蛋了。
      

  3.   

    程序可不会重男轻女。SonRef 和 GirlRef两者都公平的拥有父类的非私有方法。
      

  4.   

    $fun = 'test';
    $ss = '$this->y';
    $funstr = '$this->'.$fun.'('.$ss.');';  
    eval($funstr);宜写作
    $fun = 'test';
    $this->$unn($this->y);
      

  5.   

    可是:$this->y 源于XML。
    都是配置信息,否则我也会直接调用了。
      

  6.   


    没看懂。5555 。  我是想要:sonRef,对象有一个自己的Ref,GirlRef对象有另外一个Ref啊。
      

  7.   

    无论是源于谁,既然你都可以写作 $this->y 那么就说明 y 已经是自己的了我感觉到你的思路有点乱了,你能平静下来仔细的描述一下你的需求吗?
      

  8.   

    $param1 = '$this->y';
    $param2 = '$this->z';因为字符串:'$this->y'是动态生成的,我并不知道它是y.
    所以才会出现拼接代码:如下
    $fun = 'test';
    $ss = '$this->y';  //这个$ss的值是传入的。
    $funstr = '$this->'.$fun.'('.$ss.');';   
    eval($funstr);