Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
Подскажите, что легче для машины при выполнении частых поисков значения if (isset(a['key')) или if (strpos($s, 'key')) легче спросить компилятор есть ли переменная или пройтись по сроке с поиском ее имени ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 21:43 |
|
||
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
Прошу перенести в форум PHP Модератор: Тема перенесена из форума "MySQL". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 21:52 |
|
||
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
СтеллаАртуаif (isset(a['key')) Кроме бардака со скобками еще и не понятно, что такое обозначено буквой "a". Вообще, isset() проверяет существование переменной. Точнее, имеет ли эта переменная значение, отличное от null. В качестве аргумента функции должна быть передана переменная. Это может быть и элемент массива. Если проверяется существование элемента массива $a['key'], то использование isset() будет практически единственным правильным способом. Но в таком случае не понятно сравнение этой функции к строковой strpos(). Если проверяется что-то другое, тогда уточните, что именно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 23:16 |
|
||
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
vkle, Код: sql 1. 2. 3. 4. 5. 6. 7. вообще мне не ясно сколько потребуется PHP на определение статуса переменной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 23:25 |
|
||
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
Сама оп себе isset() очень быстра. Если не ошибаюсь, ее работа не идет дальше просмотра таблицы переменных скрипта. СтеллаАртуа Код: sql 1. А откуда берется переменная $s в реале? Ну не с потолка же. Возможно, имеется в виду что-то вроде Код: php 1. ? Если так, то уже на этом этапе имеем вызов не одной, а двух функций. Ну да не важно. Сам алгоритм поиска подстроки в строке гораздо сложнее. Даже в Вашем варианте, с явно определенной строкой, потребуется запрос значения переменной, когда первое обращение идет к таблице переменных, и только потом сравнение цепочки байтов в указанном там фрагменте памяти с заданным шаблоном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 23:48 |
|
||
|
PHP что лучше if (isset(a['key')) или if (strpos($s, 'key'))
|
|||
|---|---|---|---|
|
#18+
так замерять в цикле 10000 итераций. а вообще как верно сказали isset($a); пхп внутри хранит таблицу переменных по типу $variables = array( <hash_of_variable_name> => <link to memory> ) и найти переменную, это пощитать её хеш от имени полного(включая область видимости её) и найти этот хеш в таблице поиск же строки в подстроке, это циклом со смещением на один байт сканировать строку. вопрос умный - действия похожие...но таблица с хешами проиндексирована, и опуская тонкости реализации, вопрос похож на - найти запись в таблице по полю с индексом и без. да для таблиццы переменных надо хеш щитать, но ВНИМАНИЕ для isset($a) мы ищем хеш в таблице этой переменной для strpos($s, 'слива') !== false - мы тоже ищем в таблице этой же хеш другой переменной, и потом ещо по адрессу вытаскивать строку надо для случая $a['fd'] б насклько я помню, то в таблице хешей переменых лежит помимо самой $a сразу и хеши всех елементов массива - тоесть для $a['fd'] не будет ити поиск сначала самого масива, а потом его елемента, сразу будет ити поиск елемента как отдельной переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.11.2014, 16:11 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=72&tid=1462224]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
65ms |
get topic data: |
15ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 219ms |
| total: | 368ms |

| 0 / 0 |
