+ -
当前位置:首页 → 问答吧 → 取出类里面的变量问题

取出类里面的变量问题

时间:2011-11-30

来源:互联网

类名问题:
第一个类里面的方法: public function action_accountAdd(){
  $post = Controller_checkpost::check($post,"Model_user");
  }

第二个类:class Controller_Checkpost
  {
  public static function check($posts,$m)
  {
  $rules =$m::$rules; //这种写法是错误的
  }
  }
第三个类: class Model_user
  {
  public static $rules = "aaa";
  } 

请问我在第二类里面的check方法里怎么取出第三个类里面的$rules变量?

作者: dhc_1229   发布时间: 2011-11-30

class Controller_Checkpost
{
  public static function check($posts,$m)
  {
  return $rules = Model_user::$rules; //这种写法是错误的
  }
}
class Model_user
{
  public static $rules = "aaa";
}  


echo Controller_Checkpost::check('', '');

作者: ci1699   发布时间: 2011-11-30

谁说是错误的?

class T {
public function action_accountAdd(){
echo $post = Controller_checkpost::check($post,"Model_user");
  }
}

class Controller_Checkpost
{
  public static function check($posts,$m)
  {
  return $rules = $m::$rules; 
  }
}
class Model_user
{
  public static $rules = "aaa";


$p = new T;
$p->action_accountAdd();//输出 aaa 



作者: xuzuning   发布时间: 2011-11-30

确实是错误的啊。
传过去是字符串了。

PHP code

class test {
 public function action_accountAdd(){
  $post = Controller_checkpost::check($post,Model_user);
  }
}

class Controller_Checkpost
{
  public static function check($posts,$m)
  {
    var_dump($m);
    $o = new $m;
    // eval(' $rules = ' . $m . '::$rules;');  
    echo $o -> rules;

  }
}

class Model_user
{
  public  $rules = "aaa";
  // public static $rules = "aaa";
}  

$t = new test();
$t -> action_accountAdd();




暂时只想到有eval。但不安全。
或不用static。

作者: ci1699   发布时间: 2011-11-30

你可以在在class Model_user中增加一个静态方法
PHP code

class Model_user
{
  public static $rules = "aaa";
}   

static function getRules() 
{ 
return self::$rules; 
} 
};
//然后在第二个类中调用
//第二个类:
class Controller_Checkpost
  {
  public static function check($posts,$m)
  {
  $rules =Model_user::getRules();  
  }
  }





作者: binglingxiaolingling   发布时间: 2011-11-30

php无耻强大的特征之一便是其变态的弱类型+灵活的语法解析,这一看就知道是没问题的。

PHP code
class a{public static $rules = "aaa";}
function getRule($class){return $class::$rules;}
echo getRule("a");//aaa

作者: foolbirdflyfirst   发布时间: 2011-11-30

相关阅读 更多