Mysql
 sql >> база данни >  >> RDS >> Mysql

Разлика между -> и ::в PHP MySQLi OOP

-> се използва, когато се отнася до член на обект.

:: е Оператор за разделяне на обхвата и се използва за обозначаване на статичен член на клас.

Помислете за следния клас:

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

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

Бихте извикали функцията buzz() като използвате -> :

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

Но ще използва :: за да извикате функцията fizz() , тъй като е статичен член (член, който не изисква да бъде извикан екземпляр на класа):

FooBar::fizz();

Освен това, докато говорим за разликата между статичени членове срещу създаден членове, не можете да използвате $this за препратка към текущия екземпляр в статичен членове. Използвате self вместо това (без водещ $ ), който се отнася до текущия клас, или родител ако искате да се обърнете към родителския клас или ако имате удоволствието да работите с PHP 5.3.0, static (което позволява късно статично свързване).

Документацията използва :: да се позовава на функция вътре в клас, тъй като името на класа в заглавката не е екземпляр на класа. Все още използвайки същия пример, запис в документация, отнасящ се до функцията buzz() ще използва следната заглавка:

FooBar::buzz

Но освен ако документацията не посочва, че е статичен член, ще трябва да използвате -> на екземпляр, за да го извикате:

$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. MySQL създава време и обновява времевата марка

  2. Декларирайте променлива MySQL тригер

  3. Защо резултатите от SQL заявка не се връщат в реда, в който очаквам?

  4. Хибернация – уникалното ограничение на колоната се игнорира

  5. Как да изградите Rest API с Spring Boot, използвайки MySQL и JPA