PHP не поддерживает это очень хорошо (начиная с PHP 5.3) как Tim Cooper already highlighted. Поэтому вам нужно подумать дважды, если вам действительно нужно это уплотнить.
Вы можете делать вещи довольно динамично, например. путь возвращать ArrayObject
вместо массива:
class Test
{
function myFunction()
{
return new ArrayObject(array('first','second','third'), 3);
}
}
$var = new Test();
print($var->myFunction()->{1});
Каких украсят данные массива с некоторыми дополнительными методами и способами доступа. Другим способом было бы для функций без параметров, чтобы обмануть PHP парсер и предложить свойство вместо функции динамически:
class Test
{
function myFunction()
{
return array('first','second','third');
}
public function __get($name)
{
return $this->$name();
}
}
$var = new Test();
print($var->myFunction[1]);
Но я не знаю, если это действительно полезно в приложении.
Так что проверьте свою мотивацию, почему вы хотите скомбинировать код, а затем самостоятельно решить.
Что делать, если вы передаете индекс массива в 'myFunction()' и вернете ли это значение? –
Вопросник хотел узнать о чем-то в ООП, а не о базовом программировании. –