Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Sự khác biệt giữa -> và ::trong PHP MySQLi OOP

-> được sử dụng khi đề cập đến một thành viên của một đối tượng.

:: Toán tử phân giải phạm vi và được sử dụng để chỉ một thành viên tĩnh của một Lớp.

Hãy xem xét lớp sau:

class FooBar {
    public static function fizz() {
        echo "Fizz";
    }

    public function buzz() {
        echo "Buzz";
    }
}

Bạn sẽ gọi hàm buzz () sử dụng -> :

$myFooBar = new FooBar();
$myFooBar->buzz();

Nhưng sẽ sử dụng :: để gọi functon fizz () , vì nó là một thành viên tĩnh (một thành viên không yêu cầu một phiên bản của lớp được gọi):

FooBar::fizz();

Ngoài ra, trong khi chúng ta đang nói về sự khác biệt giữa tĩnh thành viên so với khởi tạo thành viên, bạn không thể sử dụng $ this để tham chiếu đến phiên bản hiện tại trong static các thành viên. Bạn sử dụng self thay vào đó (không có $ đứng đầu ) tham chiếu đến lớp hiện tại hoặc cha nếu bạn muốn tham chiếu đến lớp cha hoặc nếu bạn thích làm việc với PHP 5.3.0, static (cho phép liên kết tĩnh trễ).

Tài liệu sử dụng :: để tham chiếu đến một hàm bên trong một lớp vì tên lớp trong tiêu đề không phải là một thể hiện của lớp. Vẫn sử dụng cùng một ví dụ, một mục nhập tài liệu đề cập đến hàm buzz () sẽ sử dụng tiêu đề sau:

FooBar::buzz

Nhưng trừ khi tài liệu chỉ định đó là thành viên tĩnh, bạn sẽ cần sử dụng -> trên một ví dụ để gọi nó:

$myFooBar = new FooBar();
$myFooBar->buzz();


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chuyển đổi từ nhị phân sang thập phân bằng MySQL

  2. Làm cách nào tôi có thể sử dụng MySQL Errcode 13 với CHỌN VÀO OUTFILE?

  3. Vấn đề đối sánh MySQL

  4. PostgreSQL GROUP BY khác với MySQL?

  5. Hủy truy vấn MySQL khi người dùng hủy bỏ