Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
Есть у меня такая хотелка. Допустим есть массив $data (или объект). В нем есть элемент $data['item']; это может быть одиночное значение, а может быть массив или список. Мне нужно сделать какие-то операции с этим элементом или элементами; если точнее, то этот элемент (или список элементов) используется в шаблоне. Можно сделать так: Код: php 1. 2. 3. 4. 5. 6. 7. Но еще удобнее было бы всегда использовать foreach, чтобы в случае массива он работал обычным образом, а для одиночного элемента он работал как для массива из одного элемента. Не подскажите, как этого можно добиться? Насколько я понял из документации, в случае объектов последний должен реализовывать интерфейс Traversable (вернее Iterator*). Но мне было бы удобнее работать с массивами. Можно ли с ними сделать подобное? ________________________ Мы смотрим с оптимизмом... ...в оптический прицел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2015, 17:53 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
Alibek B., ну сделайте приведение типа к массиву... http://php.net/manual/en/language.types.array.php Converting to array For any of the types: integer, float, string, boolean and resource, converting a value to an array results in an array with a single element with index zero and the value of the scalar which was converted. In other words, (array)$scalarValue is exactly the same as array($scalarValue). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 07:40 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
Alibek B., а может быть массив или список а разве в пхп это не одно и тоже? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 09:17 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
по теме. само оно так работать не будет. если нужно итерировать как массив - то и формируй сразу массив. если одиночный элемент - то оборачивай его в массив. да и все. а в шаблоне просто foreach будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 09:19 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
BarloneAlibek B., ну сделайте приведение типа к массиву... Это конечно можно. Но ведь приведение типов это лишняя нагрузка на процессор и лишний расход памяти. Если уж делать интерфейс перечисления, то я бы сразу реализовал работу с объектами без приведения. r uесли нужно итерировать как массив - то и формируй сразу массив. если одиночный элемент - то оборачивай его в массив. да и все. Я использую в качестве шаблонизатора сам PHP. То есть мой шаблон — это HTML-файл с минимальными вставками PHP-кода в альтернативном синтаксисе. Код: html 1. 2. 3. 4. 5. 6. Вот это вот $data = (is_array($data) ? $data : array($data)) в шаблоне выглядит инородным, я бы хотел обойтись без него. Или так не получится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 09:43 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
Alibek B.Вот это вот $data = (is_array($data) ? $data : array($data)) в шаблоне выглядит инородным, я бы хотел обойтись без него. в шаблоне конечно инородно. все действия с данными нужно выше, на этапе формирования этих данных. в модели например. а дело шаблона только вывести эти данные. не занимаясь анализом и модификацией данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 09:58 |
|
||
|
Подскажите, как сделать интерфейс Enum в PHP
|
|||
|---|---|---|---|
|
#18+
Alibek B.Вот это вот $data = (is_array($data) ? $data : array($data)) в шаблоне выглядит инородным, я бы хотел обойтись без него. Ну так foreach((array)$data as $item) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2015, 12:51 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=50&tid=1461325]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 259ms |
| total: | 414ms |

| 0 / 0 |
