очередной простейший вопрос
#1
Отправлено 25 September 2013 - 05:29 PM
если $a['123_'] = xxx, то xxx заносится в элемент с ключом "123" (строка), а если вместо '123_' поставить '123', то ключ будет числовой. если же '-123', то числовым и офигенным. Со вторым худо-бедно понятно, индекс массива отрицательным быть не может, поэтому получаем положительное офигенное, но как заставить ключ быть строкой при таком раскладе?
Нужда вполне практическая, т.к. код выглядит примерно так
$var = (string)crc32('строка');
$a[$var] = xxx;
а ключ обязательно должен быть строкой, а не int-ом. Вышел из положения добавлением подчерка в конец строки, но это изврат.
Ну и до кучи накопившиеся мелочи, которые просто интересны.
Что означает @ перед функцией? например, @function().
Подавление вывода в стандартный output сообщений об ошибках?
Также кое где (в ShopCMS- в модулях оплаты) встречаю индексы массивов не в квадратных скобках, а в фигурных. В чем отличие?
#2
Отправлено 25 September 2013 - 08:20 PM
оператор {} (фигурные скобки), позволяющий обращаться к отдельными символам строки как к элементам массиваТакже кое где (в ShopCMS- в модулях оплаты) встречаю индексы массивов не в квадратных скобках, а в фигурных. В чем отличие?
+
Для доступа к элементам массива могут использоваться как квадратные, так и фигурные скобки (например, $array[42] и $array{42} означают одно и то же в вышеприведенном примере).
да, игнорирование ошибокЧто означает @ перед функцией? например, @function(). Подавление вывода в стандартный output сообщений об ошибках?
попробуй принудительно сделать строку $a["'".$var."'"], возможно сработаетнаступил тут на непонятные мне грабли. Наверное, они логичны, но я пока логики не понял. если $a['123_'] = xxx, то xxx заносится в элемент с ключом "123" (строка), а если вместо '123_' поставить '123', то ключ будет числовой. если же '-123', то числовым и офигенным. Со вторым худо-бедно понятно, индекс массива отрицательным быть не может, поэтому получаем положительное офигенное, но как заставить ключ быть строкой при таком раскладе? Нужда вполне практическая, т.к. код выглядит примерно так $var = (string)crc32('строка'); $a[$var] = xxx; а ключ обязательно должен быть строкой, а не int-ом. Вышел из положения добавлением подчерка в конец строки, но это изврат.