2011-12-28 4 views
0

Можно создать дубликат:
Reference - What does this symbol mean in PHP?Что означает синтаксис «::»?

В PHP, что делает :: значит? например

Pagination::set_config($config); 

Является ли он аналогичным =>?

+3

Название :: это Паамайим Некудотаим. – Armin

+0

@ Gordon - спасибо за это - различные поиски в окне поиска SO не смогли ответить на мой вопрос. – diagonalbatman

+0

@ThinkingMonkey - я не опустил вас! И я искал ... просто не «ударил» правильный термин. – diagonalbatman

ответ

0

:: является разрешение оператора сфера (первоначально названный так в C++) означает, что вы ассоциирования метод set_config($config) с классом Pagination. Это статический метод, и статические методы не могут быть доступны через объекты его класса, поскольку они связаны с их классом, а не с объектами этого класса.

Pagination::set_config($config); 

Обозначение -> используется для доступа к членам экземпляра. Обозначение => используется с ассоциативными массивами в PHP для доступа к членам этих массивов.

4

В PHP это Scope Resolution Operator. Он используется для доступа к методам и атрибутам непосвященных классов. Методы, которые явны для этой нотации, называются статические методы.

Кроме того, вы можете использовать это обозначение для прохождения через расширенные классы относительно (с того места, где вы находитесь). Пример:

class betterClass extends basicClass { 
    protected function doTheMagic() { 
     $result = parent::doTheMagic(); 
     echo "this will output the result: " . $result; 
     return $result; 
    } 
} 

В этом примере метод doTheMagic перезаписывает существующий метод своего родителя, но с parent::doTheMagic(); оригинальный метод может быть вызван, тем не менее.

1

Этот синтаксис «::» - Оператор разрешения масштаба.

Он используется для обозначения функций и переменных в базовых классах или классах, которые еще не имеют экземпляров.

Пример из php.net:

<?php 
class A { 
    function example() { 
     echo "I am the original function A::example().<br />\n"; 
    } 
} 

class B extends A { 
    function example() { 
     echo "I am the redefined function B::example().<br />\n"; 
     A::example(); 
    } 
} 

// there is no object of class A. 
// this will print 
// I am the original function A::example().<br /> 
A::example(); 

// create an object of class B. 
$b = new B; 

// this will print 
// I am the redefined function B::example().<br /> 
// I am the original function A::example().<br /> 
$b->example(); 
?> 

Просто прочтите комментарии в примере. Для получения дополнительной информации перейдите на страницу the php.net article.

Смежные вопросы