Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在同一项目的不同控制器中将变量从一个函数访问到另一个函数_Php_Codeigniter - Fatal编程技术网

Php 如何在同一项目的不同控制器中将变量从一个函数访问到另一个函数

Php 如何在同一项目的不同控制器中将变量从一个函数访问到另一个函数,php,codeigniter,Php,Codeigniter,我有一个控制器,其中我有如下所示的公共功能 class Add_project extends MY_Controller { public function add_quotation_maker() { $this->data['AutomationFullnFinal'] = $this->data['AutomationDiningAndLivingArea'] + $this->data['AutomationLivingArea'] + $this-

我有一个控制器,其中我有如下所示的公共功能

class Add_project extends MY_Controller
{

 public function add_quotation_maker()
  {
    $this->data['AutomationFullnFinal'] = $this->data['AutomationDiningAndLivingArea'] + $this->data['AutomationLivingArea'] + $this->data['AutomationDiningArea'] + $this->data['AutomationKitchen'] + $this->data['AutomationEntireHome'];
}
}
class Make_pdf extends Add_project
{
public function index()
    {
      }
}
现在,我有了另一个控制器,其中有另一个函数,如下所示

class Add_project extends MY_Controller
{

 public function add_quotation_maker()
  {
    $this->data['AutomationFullnFinal'] = $this->data['AutomationDiningAndLivingArea'] + $this->data['AutomationLivingArea'] + $this->data['AutomationDiningArea'] + $this->data['AutomationKitchen'] + $this->data['AutomationEntireHome'];
}
}
class Make_pdf extends Add_project
{
public function index()
    {
      }
}
不,我想使用$this->data['AutomationFullnFinal']从Add\u项目控制器添加到公共函数索引内的Make\u pdf控制器中


欢迎提供任何帮助。

希望这对您有所帮助:

  class Add_project extends CI_Controller
  {
    public function add_quotation_maker()
    {
      $this->data['AutomationFullnFinal'] = $this->data['AutomationDiningAndLivingArea'] + $this->data['AutomationLivingArea'] + $this->data['AutomationDiningArea'] + $this->data['AutomationKitchen'] + $this->data['AutomationEntireHome'];
     }
     public function test()
     {
        echo "string";;
     }
  }
Make_pdf
文件中只包含上述文件:

   include_once (dirname(__FILE__) . "/Add_project.php");
   class Make_pdf extends Add_project {
       public function test2()
       {
         $this->test();
       }
   }

现在您可以访问添加项目的方法:

它将通过以下步骤实现: 1> 在控制器中扩展所需的类。
2> 通过扩展控制器的对象调用该函数。

通过使用
$this->data
可以看出
Add\u项目
类声明了属性
$data
。如果
$data
的可见性被声明为
公共的
受保护的
则它可以在
Make_pdf
中使用,并以相同的方式访问,例如
$this->data['which']

声明可能看起来像

class Add_project extends CI_Controller
{
   public $data;

   public function add_quotation_maker()

...

你为什么要这样用。控制器不应与codeigniter中的其他控制器通信。制作自定义库或特定的核心控制器,其中的代码将由路由控制器使用。您的数据数组从何而来?您的答案是否更精确?为什么要扩展控制器?