注意:数组转换为字符串 - 为什么?

时间:2010-08-02 16:11:43

标签: php reference notice

您好我试图执行以下PHP代码,但是我收到错误。我将引用传递给核心类,我想将其分配给类范围内的变量。

注意:数组转换为字符串

提前致谢..

$core = new core($config);
$core->execute();   

class core
{
   private $config;

   public function __construct(&$config)
   {
      $this->$config = $config;
   }

   public function execute()
   {
      $this->set_path();
   }

   private function set_path()
   {
      return true;      
   }  
}

4 个答案:

答案 0 :(得分:12)

好吧,先关闭....

$this->$config

$中的第二个$config应该被删除,否则它会尝试使用$config中字符串给出的名称来访问该变量。 (例如,如果$ config将"test"作为值,则您将访问班级中的"test"变量:$this->test

传入时$config是什么? (字符串,数组,对象等?)

答案 1 :(得分:1)

private $ config = array();

答案 2 :(得分:1)

$this->config = $config;

答案 3 :(得分:0)

这在php 5.2中没有错误 您使用的是什么版本的PHP?

<?php
class core
{
   private $config;

   public function __construct(&$config)
   {
      $this->config = $config;
   }

   public function execute()
   {
      $this->set_path();
   }

   private function set_path()
   {
      return true;      
   }  
}

$config=array(
     'a'    => '1'
    ,'b'    => '2'
    );

$core = new core($config);
$core->execute();