2015-05-30 14 views
5

Tôi chưa nhận được hàm hang() và chuyển các biến. Tôi có một phương thức trong bộ điều khiển người dùng trong đó một số biến được xác định và được gửi trong một mảng tới hàm xem trong bộ điều khiển cha, trong đó mảng được trích xuất. Sau đó, xem là bắt buộc. Nhưng các biến lại không xác định. Các nội dung mảng có thể được in mặc dù.

Dưới đây là bộ điều khiển người dùng với một chức năng đơn giản hóa hồ sơ:

class User extends Controller{ 

    public function profile(){ 

     $profiledetails = $this->profiledetails();   
     $profilestatus = $this->profileStatus();    

     $this->view('profile', [$profiledetails, $profilestatus]); 
}}  

Các biến được gửi đến các chức năng xem trong điều khiển cha mẹ:

class Controller { 
    public function view($view, $variables =[]){      

    extract($variables); 

    require_once './app/views/' . $view . '.php'; 
}} 

Và trong giao diện, 'profile.php ', lỗi biến không xác định được hiển thị. Tôi nghĩ rằng hàm "extract()" sẽ tạo $ profiledetails và $ profilestatus có sẵn dưới dạng các biến trong khung nhìn. Tôi đang làm gì sai? Có lẽ tôi đang sử dụng sai loại mảng, hoặc tôi nên sử dụng "biến VAR biến" hoặc một cái gì đó .. (trong trường hợp đó, làm thế nào?).

+2

'trích xuất' muốn một mảng kết hợp. –

+0

Nó, theo các tài liệu: http://php.net/manual/en/function.extract.php –

Trả lời

7

extract làm việc với mảng kết hợp.

$this->view('profile', 
     [ 
     'profiledetails' => $profiledetails, 
     'profilestatus' => $profilestatus 
     ]); 
+0

* Tôi nghĩ * Bạn nghĩ hay bạn biết điều đó? – Rizier123

+2

Tôi có nghĩa là tôi chắc chắn. Hãy để tôi chỉnh sửa điều đó. –

+1

Rất tuyệt vời. Cảm ơn! – Galivan

Các vấn đề liên quan