2011-11-20 17 views
6

Tôi có một bộ điều khiển có các chức năng sau:Vượt qua các biến của hàm thành hàm khác trong bộ điều khiển trong trình mã hóa?

class controller { 

    function __construct(){ 

    } 

    function myfunction(){ 
     //here is my variable 
     $variable="hello" 
    } 


    function myotherfunction(){ 
     //in this function I need to get the value $variable 
     $variable2=$variable 
    } 

} 

Tôi cảm ơn vì câu trả lời của bạn. Làm thế nào tôi có thể vượt qua các biến của một chức năng để chức năng khác trong một bộ điều khiển của codeigniter?

+0

Ngoài ra, tùy thuộc vào việc có thể gọi hàm 'myotherfunction' thông qua url hay không, bạn có thể đặt tên nó bằng dấu gạch dưới để nó không có sẵn theo mặc định, chẳng hạn như' hàm riêng _myotherfunction() {} '. – Matthew

Trả lời

5

Hoặc bạn có thể đặt $ biến như một thuộc tính trong bạn lớp;

class controller extends CI_Controller { 

    public $variable = 'hola'; 

    function __construct(){ 

    } 

    public function myfunction(){ 
     // echo out preset var 
     echo $this->variable; 

     // run other function 
     $this->myotherfunction(); 
     echo $this->variable; 
    } 

    // if this function is called internally only change it to private, not public 
    // so it could be private function myotherfunction() 
    public function myotherfunction(){ 
     // change value of var 
     $this->variable = 'adios'; 
    } 

} 

Bằng cách này biến sẽ có sẵn cho tất cả các chức năng/phương pháp trong lớp điều khiển của bạn. Hãy nghĩ rằng OOP không phải là thủ tục.

+0

đó là một ý tưởng tuyệt vời, tuy nhiên, khi trong mymotherfunction(), tôi sẽ in biến, không hiển thị giá trị, trang có màu trắng. localhost/myproject/controller/myotherfunction (không in echo $ this-> variable), sẽ tải một số trong hàm tạo? cảm ơn. Tôi xin lỗi tiếng anh của tôi. – cabita

+0

xin lỗi, không thể hiểu được. Nếu bạn chỉ muốn in biến (tại sao bạn làm điều này từ một bộ điều khiển?), Chỉ cần làm echo $ this-> variable; Hay bạn đang nhận được màn hình trắng đáng ghét Codeigniter? – Rooneyl

+0

@cabita Nếu bạn muốn gửi cho tôi mã của bạn, tôi sẽ xem xét nó và gửi lại (hy vọng làm việc) – Rooneyl

4

Bạn cần phải xác định một tham số cho myOtherFunction và sau đó chỉ cần vượt qua giá trị từ myFunction():

function myFunction(){ 
    $variable = 'hello'; 
    $this->myOtherFunction($variable); 
} 

function myOtherFunction($variable){ 
    // $variable passed from myFunction() is equal to 'hello'; 
} 
+0

Xin chào. Tôi đặt mã tiếp theo: chức năng myfn1() { $ variable = 'hola'; $ this-> myfn2 ($ variable); } chức năng myfn2 ($ variable) { echo $ variable; } và tôi xuất hiện các lỗi sau: Một PHP Lỗi đã gặp phải Mức độ nghiêm trọng: Cảnh báo nhắn: Thiếu đối số 1 cho testdropdown :: myfn2() Tên tập tin: controllers/testdropdown.php Dòng Số : 20 Một PHP Lỗi đã gặp phải Mức độ nghiêm trọng: Chú ý nhắn: Không xác định biến: biến Tên tập tin: controllers/testdropdown.php Số dòng: 22 Cảm ơn sự giúp đỡ của bạn. – cabita

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