2010-03-02 27 views
5

Tôi đang cố gắng tìm ra cách sử dụng một phương thức trong lớp riêng của mình. ví dụ:PHP: Làm thế nào tôi có thể truy cập/sử dụng một phương thức trong lớp riêng của mình?

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     //call previously declared method 
     demoFunction1(); 
    } 
} 

Cách duy nhất tôi tìm thấy là làm việc là khi tôi tạo một intsnace mới của lớp trong phương thức và sau đó gọi nó. Ví dụ:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     $thisClassInstance = new demoClass(); 
     //call previously declared method 
     $thisClassInstance->demoFunction1(); 
    } 
} 

nhưng điều đó không cảm thấy đúng ... hoặc là cách đó? bất kỳ trợ giúp nào?

nhờ

Trả lời

10

$this-> bên trong của một đối tượng, hoặc self:: trong một bối cảnh tĩnh (hoặc ủng hộ hoặc từ một phương pháp tĩnh).

7

Bạn cần phải sử dụng $this để tham khảo các đối tượng hiện tại:

Các giả biến $this có sẵn khi một phương pháp được gọi là từ bên trong một bối cảnh đối tượng. $this là một tham chiếu đến đối tượng gọi (thường là đối tượng mà phương thức thuộc về, nhưng có thể là một đối tượng khác, nếu phương thức được gọi là tĩnh từ ngữ cảnh của đối tượng phụ).

Vì vậy:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     // $this refers to the current object of this class 
     $this->demoFunction1(); 
    } 
} 
4

Sử dụng "$ này" để chỉ bản thân.

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     //call previously declared method 
     $this->demoFunction1(); 
    } 
} 
5

Chỉ cần sử dụng:

$this->demoFunction1(); 
5

Sử dụng $this từ khóa để tham khảo ví dụ lớp hiện tại:

class demoClass 
{ 
    function demoFunction1() 
    { 
     //function code here 
    } 

    function demoFunction2() 
    { 
     $this->demoFunction1(); 
    } 
} 
Các vấn đề liên quan