отпечатка массива в имени вызываемой функции

crezd

Новичок
отпечатка массива в имени вызываемой функции

Добрый день,

Скажите, ежели есть у меня функция:

PHP:
function test()
{
   $arr['id']='1'; 
   $arr['name']=' heb '; 
   $arr['short_name']=' he '; 
   $arr['title']=' test '; 
   $arr['charset']=' utf-8 '; 
   $arr['active']=' 1 '; 
   $arr['default']=' 1 '; 
       
      return $arr;
}
можно вытащить элемент 'short_name' напрямую?
например

PHP:
echo test(){'short_name'};
или типо того, просто не знаю если такое вообще возможно
 

Dovg

Продвинутый новичок
Нельзя. Это особенность языка :)

echo myFunction()[1]; не будет работать
 

HraKK

Мудак
Команда форума
Причем дурная шо капец. Ничто меня больше не раздражает в пхп как это. Тем более интрепретируемый язык жешь, плин.
 

Sad Spirit

мизантроп (Старожил PHPClub)
Команда форума
Ща сюда придёт tony2001 и скажет: "Patch or GTFO!"
 

С.

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

dimagolov

Новичок
С., чтобы не писать тучу ф-й возвращающих по одному значению :)
вообще повод для holly war-а
 

MuXaJIbI41981

Новичок
а не проще переделать ее в класс тогда

...........


или передавать туда ключ по которому будет возвращаться только этот елемент массива ... если не передавать то весь массив
 

HraKK

Мудак
Команда форума
С. ты прав, но иногда бывают варианты когда ты работаешь с АПИ, а он предоставляет избыточную информацию.
 

Zetruger

ivan.chistyakov.name
function test($key = NULL)
{
$arr['id']='1';
$arr['name']=' heb ';
$arr['short_name']=' he ';
$arr['title']=' test ';
$arr['charset']=' utf-8 ';
$arr['active']=' 1 ';
$arr['default']=' 1 ';

return is_null($key) ? $arr : (isset($arr[$key]) ? $arr[$key] : FALSE);
}
 

С.

Продвинутый новичок
dimagolov, А ты не думаеш, что вместо func()['param'] лучше написать func('param')? Все в одной функции будет и скобки не надо городить.
 

nerezus

Вселенский отказник
С.
$ext = pathinfo($file)['extension'];
А почему бы и нет?
А тем более $all = (new someClass($params))->getAll();

Так везде можно писать. И только пхп вводит дурацкие ограничения.
 

FB3

Новичок
Автор оригинала: nerezus
С.
$ext = pathinfo($file)['extension'];
А почему бы и нет?
А тем более $all = (new someClass($params))->getAll();

Так везде можно писать. И только пхп вводит дурацкие ограничения.
Который раз за день вижу про это сообщения, не только здесь на форуме. ИМХО, это наследие старых версий PHP...
 

Dovg

Продвинутый новичок
А тем более $all = (new someClass($params))->getAll();
PHP:
class comeClass
{
  public static function create($params)
  {
    return new self($params);
  }

  public function __construct($params){}
}

$all = someClass::create($params)->getAll();
 

whirlwind

TDD infected, paranoid
И хорошо, что нету. Говномассивов с аморфной структурой меньше по проекту будет.
 

nerezus

Вселенский отказник
Dovg А если я ООП использую?
Тогда способ уже не покатит.

Ну по крайней мере до времен появления позднего статического связывания в пхп.


[qoute]И хорошо, что нету. Говномассивов с аморфной структурой меньше по проекту будет.[/QUOTE]
Посмотри на мои 2 примера. ни тоже невозможны.
 

nerezus

Вселенский отказник
dimagolov писать статическую обертку для основных методов? )
 

dimagolov

Новичок
nerezus, почему обвертку? в этом примере мы создаем анонимный объект и вызываем его метод. Что здесь такого, что нельзя сделать статическим методом? задание параметров с которыми будет создан объект? с тем же успехом и результатом они могут быть переданы параметрами в статический метод. Даже если у тебя getAll возвращает сам объект, то и тогда это получается фабрика, которая должна быть статической.
 
Сверху