为什么我不能传递在Code Igniter控制器的构造函数中初始化的值?

Joh*_*man 3 php codeigniter

我在Code Igniter应用程序中有这个控制器.值在构造函数中初始化.

class Cat extends CI_Controller {
    private $data = array();

    public function __construct() {
        parent::__construct();
        $this->data['sound'] = "meow";
    }                                 
    public function index() {
        $this->load->view('myCatPage', $data); 
    }
}
Run Code Online (Sandbox Code Playgroud)

"views/myCatPage.php"视图如下所示.很简单.

<?= $sound ?>
Run Code Online (Sandbox Code Playgroud)

为什么PHP会注意到这个错误?

Message: Undefined variable: sound
Run Code Online (Sandbox Code Playgroud)

我以为我发送了这个变量作为$data我发送到视图中的数组()中的一个键.我试过了

$this->load->view('myCatPage', $this->data);
Run Code Online (Sandbox Code Playgroud)

但奇怪的是也失败了.

The*_*pha 9

class Cat extends CI_Controller {
    var $data = array();
    public function __construct() {
        parent::__construct();
        $this->data['sound'] = "meow";
    }                                 
    public function index() {
        $this->load->view('myCatPage', $this->data); 
    }
}
Run Code Online (Sandbox Code Playgroud)