Помогите исправить собственное быдлокодерство

gray

Новичок
WMix
Не понял только зачем в код второй параметр передавать, если его можно задать внутри функции.
PHP:
function getParam($key){
    $key = (string) $key;
     $default = null;
    if (isset($_GET[$key])) {
        return $_GET[$key];
    }
    return $default;
}

switch (getParam('f')){
  case "a":/*...*/break;
  case "b":/*...*/break;
  case "c":/*...*/break;
  default:/*действие по-умолчанию*/
}
Так вроде короче и удобнее? Или есть какие-то правила хорошего тона в таком написании?
 

WMix

герр M:)ller
Партнер клуба
PHP:
$f = (isset($_GET['f']) ? $_GET['f'] : 'default') ;
switch( $f ){ ... }
 
  • Like
Реакции: gray

WMix

герр M:)ller
Партнер клуба
потому-что мне удобно иметь по значение по умолчанию
PHP:
$page = getParam('page',1);
$order_by = getParam('order_by','id');
$platypus = getParam('platypus','gray');
$f = getParam('f'); // работает и в моем варианте
 

gray

Новичок
потому-что мне удобно иметь по значение по умолчанию
PHP:
$page = getParam('page',1);
$order_by = getParam('order_by','id');
$platypus = getParam('platypus','gray');
УмнО.
Если идентификатора страницы нет, то вернуть первый.
Если сортировка отсутствует, то сортировать по ид.

Офф: Это просто утка :)
 

WMix

герр M:)ller
Партнер клуба
я не придумываю я пользую... это был кастрированный кусок класса Zend_Controller_Request_Abstract

офф у утки же тоже утиный нос !
 

weregod

unserializer
О каком утверждении речь?
очевидно, про "доброе утро php 5.3", если есть статистика по кол-ву хостеров, форсированно заменивших php 5,2 на 5.3, положив х на клиентов, против хостеров, которые этого не сделали, будет интересно почитать :)
 

gray

Новичок
Здравствуйте.
Никак не могу разобраться с тем как работает фигурная скобка в данном примере.
PHP:
$pattern = 'abcdefghijklmnopqrstuvwxyz';
$counter = strlen($pattern)-1;
echo $pattern{rand(0,$counter)};
echo $pattern{rand(0,$counter)};
Если я ничего не перепутал, то echo выводит случайный набор переменных. Например $pattern7, $pattern22, $pattern13. Которых не существует.
На деле эта строчка все же выводит именно букву из паттерна. в диапазоне от 0 до длины паттерна.
Помогите разобраться как это происходит?
 

gray

Новичок
Разобрался. Извините за вопрос.
Букву из строки модно вызвать по её номеру. Строка - есть массив.
Т.е. $pattern{0} == $pattern[0]
 

Фанат

oncle terrible
Команда форума
Строка - не массив.
Обращение к элементам через квадратные/кучерявые скобки - это синтаксический сахар
Правильная ссылка вот - http://php.net/manual/en/language.types.string.php#language.types.string.substr
Работает, как там написано, только для однобайтных кодировок, что важно.
 
Сверху