Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Różnica między -> a ::w PHP MySQLi OOP

-> jest używane w odniesieniu do członka obiektu.

:: jest Operatorem rozstrzygania zakresu i jest używany w odniesieniu do statycznego członka klasy.

Rozważ następującą klasę:

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

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

Możesz wywołać funkcję buzz() używając -> :

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

Ale użyłbym :: wywołać funkcję fizz() , ponieważ jest to element statyczny (element, który nie wymaga wywołania instancji klasy):

FooBar::fizz();

Ponadto, gdy mówimy o różnicy między statycznymi członkowie a instancja członków, nie możesz używać $this aby odwoływać się do bieżącego wystąpienia w statycznym członków. Używasz self zamiast tego (bez wiodącego $ ), który odnosi się do bieżącej klasy lub nadrzędny jeśli chcesz odwołać się do klasy nadrzędnej lub jeśli masz przyjemność pracować z PHP 5.3.0, statyczny (co pozwala na późne wiązanie statyczne).

Dokumentacja używa :: odwoływanie się do funkcji wewnątrz klasy, ponieważ nazwa klasy w nagłówku nie jest instancją klasy. Nadal używam tego samego przykładu, wpis dokumentacji odwołujący się do funkcji buzz() użyje następującego nagłówka:

FooBar::buzz

Ale jeśli dokumentacja nie określa, że ​​jest to element statyczny, będziesz musiał użyć -> na instancji, aby to nazwać:

$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. Dlaczego wykonanie zapytania wstawiającego czasami trwa tak długo?

  2. Problem z bazą danych Laravel 5

  3. Zmień krok auto_increment pól inkrementacji o

  4. Dynamiczne wybieranie kolumny w MySQL

  5. Mapy Google Zapisz wielokąt i punkty w MySQL za pomocą PHP