2016-03-18 4 views
0

Я часто вижу $var->another_var, или $somevar=>yet_another, или даже $third_var->another=>$fourth_var в различных фрагментах кода.Одиночная стрелка против смешивания двойной стрелки и совпадения

Есть ли какая-нибудь удивительная инфо-графика, где четко объясняются различные способы использования и что они означают, в частности, в контексте PHP?

(В моем случае, используя Drupal, который использует МНОЖЕСТВО массивов, но, вероятно, полезно во многих других CMSS/рамок.)

EDIT: Я так был проинформирован о догоняющего все страницы, которые имеет очень полезный, энциклопедический список различных символов и синтаксисов. Тем не менее, я считаю, что в одном разделе, который НЕ рассматривается, есть комбинация смешивания и совпадения $ var-> element => $ anothervar.

+0

Оригинальный вопрос был отредактирован, чтобы подчеркнуть уникальность. Пожалуйста, переоцените. Благодаря! –

ответ

1
  • $var->another_var является "свойство another_var объекта, на который ссылается $var".

  • $somevar=>yet_another используется в определениях массивов, например: $arr = array($somevar => yet_another). Он будет определять ассоциативное свойство с ключом, равным значению переменной $somevar, и значением, равным константе yet_another.

  • $third_var->another=>$fourth_var можно переписать так что становится более ясным:

    array( /*key=*/ ($third_var->another) => /*value=*/ $fourth_var )` 
    
+0

Очень полезно! Благодаря! –

2

Single стрелка - T_OBJECT_OPERATOR

->

Используется для доступа к свойству объекта и значение, связанное с этим свойством.

$object->property='value' 

У меня есть собака, и его зовут капитан

$dog->name='Captain'; 

Теперь у меня есть доступ к свойствам моей собаки. Свойство, которое мы установили это имя

$dogName=$dog->name; 
echo $dogName; 

Выведет: Captain

Я могу также добавить другие свойства и связанные с ними значения для моего объекта.

$dog->weight='57lbs'; 

Теперь у меня есть два свойства, связанные с ним, имя и вес.

двойной стрелки - T_DOUBLE_ARROW

=>

Как указано в documentation массив просто карта разделенных запятыми ключей и значений, связанных с ключом. Двойная стрелка по существу является оператором присваивания, который присваивает или сопоставляет значение ключу.

$array = array("key" => "value"); 

Опять же, используя пример собаки.

$dog = array("name" => "Captain", "weight" => "57lbs"); 

И мы можем получить доступ к значениям в моем массиве собак соответствующими клавишами.

$fatDog = $dog["weight"]; 
echo $fatDog; 

Выведет: 57lbs

Комбинации одинарной и двойной стрелкой

$object->property=>$value; 

Это объединяет объект/собственность с ключевыми/значениями. Если мы разделим его на составляющие, это может сделать вещи более ясными.

Мы знаем, что $object->property даст значение, связанное с этим имуществом. Начнём, связывая это с переменной:

$valueAssociatedWithProperty = $object->property; 

Используя подстановку в оригинале дает:

$valueAssociatedWithProperty => $value; 

Мы видели, что до того, как это только ключ/значение массива! Давайте применим это к примеру собаки и посмотрим, что получится:

$dog->name="Captain"; 
$description="He is crazy"; 
$array = array($dog->name => $description); 
// $array = array("Captain" => "He is crazy"); 
$whatIsCaptain = $array["Captain"]; 
echo $whatIsCaptain; 


He is crazy 

Надеюсь, это поможет.

Также смотрите HERE за все ссылки, на которые вы могли бы надеяться!