«Прямой доступ» возвращаемых значений без ссылки - PullRequest
2 голосов
/ 24 марта 2010

Посмотрите на этот пример с рубином:

puts ["Dog","Cat","Gates"][1]

Это выведет Cat, так как ruby ​​позволяет мне напрямую обращаться к созданному анонимному массиву.

Если я попробую это в PHP, однако:

echo array("Dog","Cat,"Gates")[1]

Это не сработает.

  • Как это называется, не только в отношении массивов, но и всех функций?
  • Где еще это возможно?

Не стесняйтесь менять заголовок вопроса, когда вы знаете, как называется эта "функция".

Ответы [ 2 ]

2 голосов
/ 24 марта 2010

PHP не имеет такой языковой конструкции. Он был предложен для PHP 6 , но отклонен.

1 голос
/ 24 марта 2010

В Ruby [] - это просто вызов метода (obj[1] - синтаксический сахар для obj.[](1)), поэтому нет семантической разницы между ["Dog", "Cat", "Gates"] [1] и [ «Собака», «Кошка», «Ворота»]. Ломтик (1). Многие синтаксические конструкции, которые в Ruby кажутся «операторами», на самом деле являются методами, и их обычно можно определить в ваших собственных пользовательских классах. Например:

class Foo
  def [](index)
    puts "you tried to get something at #{index}"
  end
end

f = Foo.new
f[12]
...