Hướng dẫn what is self and this in php? - self và this trong php là gì?

Nếu bạn đang làm theo hướng dẫn này ngay từ đầu hoặc bạn đã bắt đầu từ các khái niệm OOPS, bạn phải nhận thấy việc sử dụng $this trong một số đoạn mã.

this Từ khóa được sử dụng bên trong một lớp, thường với các hàm thành viên để truy cập các thành viên không tĩnh của một lớp (biến hoặc hàm) cho đối tượng hiện tại.

Chúng ta hãy lấy một ví dụ để hiểu cách sử dụng của $this.

name = $name;
        }
        
        // public function to get value of name (getter method)
        public function getName() {
            return $this->name;
        }
    }
    
    // creating class object
    $john = new Person();
    
    // calling the public function to set fname
    $john->setName("John Wick");
    
    // getting the value of the name variable
    echo "My name is " . $john->getName();

?>

Tên tôi là John Wick

Trong chương trình ở trên, chúng tôi đã tạo một biến private trong lớp có tên $name và chúng tôi có hai phương thức public setName()

0 để gán một giá trị mới cho biến $name và để có được giá trị của nó tương ứng.

Bất cứ khi nào chúng tôi muốn gọi bất kỳ biến nào của lớp từ bên trong hàm thành viên, chúng tôi sẽ sử dụng $this để trỏ đến đối tượng hiện tại giữ biến.

Chúng tôi cũng có thể sử dụng $this để gọi một hàm thành viên của một lớp bên trong hàm thành viên khác.

Lưu ý: Nếu có bất kỳ chức năng hoặc biến thành viên

4 nào trong lớp, chúng tôi không thể tham khảo nó bằng cách sử dụng $this. If there is any
4 member function or variable in the class, we cannot refer it using the $this.


Sử dụng 6 cho 4 thành viên lớp

Thay vì $this, đối với các thành viên lớp

4 (biến hoặc chức năng), chúng tôi sử dụng
6, cùng với toán tử độ phân giải phạm vi
name;
        }
        
        // public function to get job description
        public function getDesc() {
            return $this->desc;
        }
        
        // static function to get the company name
        public static function getCompany() {
            return self::$company;
        }
        
        // non-static function to get the company name
        public function getCompany_nonStatic() {
            return self::getCompany();
        }
    }
    
    $objJob = new Job();
    // setting values to non-static variables
    $objJob->name = "Data Scientist";
    $objJob->desc = "You must know Data Science";
    
    /* 
        setting value for static variable.
        done using the class name
    */
    Job::$company = "Studytonight";
    
    // calling the methods
    echo "Job Name: " .$objJob->getName()."
"; echo "Job Description: " .$objJob->getDesc()."
"; echo "Company Name: " .Job::getCompany_nonStatic(); ?>
1. Hãy lấy một ví dụ,scope resolution operator
name;
        }
        
        // public function to get job description
        public function getDesc() {
            return $this->desc;
        }
        
        // static function to get the company name
        public static function getCompany() {
            return self::$company;
        }
        
        // non-static function to get the company name
        public function getCompany_nonStatic() {
            return self::getCompany();
        }
    }
    
    $objJob = new Job();
    // setting values to non-static variables
    $objJob->name = "Data Scientist";
    $objJob->desc = "You must know Data Science";
    
    /* 
        setting value for static variable.
        done using the class name
    */
    Job::$company = "Studytonight";
    
    // calling the methods
    echo "Job Name: " .$objJob->getName()."
"; echo "Job Description: " .$objJob->getDesc()."
"; echo "Company Name: " .Job::getCompany_nonStatic(); ?>
1. Let's take an example,


Sự khác biệt giữa PHP 6 và this

Hãy hiểu một vài sự khác biệt giữa

6 và this:

6
this
6 Từ khóa không đi trước bất kỳ biểu tượng nào.
this Từ khóa phải được đi trước với biểu tượng $this0.
Để truy cập các biến và phương thức lớp bằng từ khóa
6, chúng tôi sử dụng toán tử phân giải phạm vi
name;
        }
        
        // public function to get job description
        public function getDesc() {
            return $this->desc;
        }
        
        // static function to get the company name
        public static function getCompany() {
            return self::$company;
        }
        
        // non-static function to get the company name
        public function getCompany_nonStatic() {
            return self::getCompany();
        }
    }
    
    $objJob = new Job();
    // setting values to non-static variables
    $objJob->name = "Data Scientist";
    $objJob->desc = "You must know Data Science";
    
    /* 
        setting value for static variable.
        done using the class name
    */
    Job::$company = "Studytonight";
    
    // calling the methods
    echo "Job Name: " .$objJob->getName()."
"; echo "Job Description: " .$objJob->getDesc()."
"; echo "Company Name: " .Job::getCompany_nonStatic(); ?>
1scope resolution operator
name;
        }
        
        // public function to get job description
        public function getDesc() {
            return $this->desc;
        }
        
        // static function to get the company name
        public static function getCompany() {
            return self::$company;
        }
        
        // non-static function to get the company name
        public function getCompany_nonStatic() {
            return self::getCompany();
        }
    }
    
    $objJob = new Job();
    // setting values to non-static variables
    $objJob->name = "Data Scientist";
    $objJob->desc = "You must know Data Science";
    
    /* 
        setting value for static variable.
        done using the class name
    */
    Job::$company = "Studytonight";
    
    // calling the methods
    echo "Job Name: " .$objJob->getName()."
"; echo "Job Description: " .$objJob->getDesc()."
"; echo "Company Name: " .Job::getCompany_nonStatic(); ?>
1
Trong trường hợp toán tử this, chúng tôi sử dụng ký hiệu $this4.
Nó được sử dụng để giới thiệu các thành viên
4 của lớp.
Nó được sử dụng để truy cập các thành viên không tĩnh của lớp.non-static members of the class.
Php
6 đề cập đến các thành viên trong lớp, nhưng không phải cho bất kỳ đối tượng cụ thể nào. Điều này là do các thành viên
4 (biến hoặc chức năng) là các thành viên lớp được chia sẻ bởi tất cả các objecxts của lớp.
Trong khi đó, $this sẽ tham khảo các biến và chức năng thành viên cho một trường hợp cụ thể.

Hãy lấy một ví dụ về mã để hiểu điều này tốt hơn:

name;
        }
        
        // public function to get job description
        public function getDesc() {
            return $this->desc;
        }
        
        // static function to get the company name
        public static function getCompany() {
            return self::$company;
        }
        
        // non-static function to get the company name
        public function getCompany_nonStatic() {
            return self::getCompany();
        }
    }
    
    $objJob = new Job();
    // setting values to non-static variables
    $objJob->name = "Data Scientist";
    $objJob->desc = "You must know Data Science";
    
    /* 
        setting value for static variable.
        done using the class name
    */
    Job::$company = "Studytonight";
    
    // calling the methods
    echo "Job Name: " .$objJob->getName()."
"; echo "Job Description: " .$objJob->getDesc()."
"; echo "Company Name: " .Job::getCompany_nonStatic(); ?>

Tên công việc: Nhà khoa học dữ liệu Mô tả công việc: Bạn phải biết tên công ty khoa học dữ liệu: Nghiên cứu

Trong đoạn mã ở trên, chúng tôi có một vài biến không tĩnh và một biến

4.

Bởi vì các thành viên

4 được liên kết với bản thân lớp chứ không phải các đối tượng của lớp, do đó chúng tôi gọi họ bằng tên lớp.

Ngoài ra, hàm thành viên

4 có thể sử dụng biến
4 bên trong nó, trong khi nếu phương thức không tĩnh sử dụng biến
4 bên trong nó, thì nó cũng được gọi là sử dụng tên lớp, giống như phương thức
4.non-static method use a
4 variable inside it, then it is also called using the class name, just like a
4 method.



Đây là cái gì và bản thân?

Từ khóa tự được sử dụng để chỉ bản thân lớp hiện tại trong phạm vi của lớp đó chỉ trong khi đó, điều này được sử dụng để chỉ các biến và chức năng của thành viên cho một trường hợp cụ thể của một lớp.self is used to refer to the current class itself within the scope of that class only whereas, $this is used to refer to the member variables and function for a particular instance of a class.

Việc sử dụng điều này trong PHP là gì?

$ Đây là một từ khóa dành riêng trong PHP đề cập đến đối tượng gọi.Nó 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ừ bối cảnh của một đối tượng thứ cấp.Từ khóa này chỉ áp dụng cho các phương thức nội bộ.refers to the calling object. It is usually the object to which the method belongs, but possibly another object if the method is called statically from the context of a secondary object. This keyword is only applicable to internal methods.

Bản thân mới trong PHP là gì?

Bản thân mới: Bản thân là từ khóa trong php.it đề cập đến cùng một lớp trong đó từ khóa mới thực sự được viết.Nó đề cập đến các thành viên lớp, nhưng không phải cho bất kỳ đối tượng cụ thể nào.Điều này là do các thành viên tĩnh (biến hoặc chức năng) là thành viên lớp được chia sẻ bởi tất cả các đối tượng của lớp.The self is keyword in PHP. It refers to the same class in which the new keyword is actually written. It refers to the class members, but not for any particular object. This is because the static members(variables or functions) are class members shared by all the objects of the class.

Sự khác biệt giữa tĩnh và bản thân trong PHP là gì?

Tự đề cập đến cùng một lớp trong đó từ khóa mới thực sự được viết. static , in PHP 5.3's late static bindings, refers to whatever class in the hierarchy you called the method on.