Тема: Task #2
Показать сообщение отдельно

  #33  
Старый 20.01.2019, 10:18
dooble
Участник форума
Регистрация: 30.12.2016
Сообщений: 218
С нами: 4931606

Репутация: 138
По умолчанию

Пояснения про самый короткий вариант.

Он конечно будет с применением ~- побитовая инверсия символов строки.

Поскольку инверсия - обратимая операция, т.е. двойное ее применение дает исходную строку.

~~'phpinfo' =='phpinfo';

Короче этой нотации просто нет.

И, на заметку, ~string без кавычек выбросит нотис (Use of undefined constant phpinfo), но тоже будет работать на символах алфавита и некоторых других, скобки воспринимаются как конец строки .

Проверял два варианта, при первой проверке получил одинаковую длину решения и в дальнейшем оптимизировал только тот, в котором вся посылка умещается в input.

Уж не знаю, обсчитался в количестве символов, или просто записал неоптимально, но шутка Лайта зашла и повторная проверка показала, что вариант с раздельной нагрузкой post +get действительно короче.

В первом варианте переменной $_ присваивается строка ~~'phpinfo', а потом вызывается функция из имени переменной $_().

.SpoilerTarget" type="button">Spoiler: v1

Второй вариант проделывает эту же манипуляцию с массивом $_GET.

.SpoilerTarget" type="button">Spoiler: v2

здесь $_GET['_'] = 'phpinfo'.

Поскольку вариант ищем короткий, то кавычки не ставим, нотисы не мешают выполнить код.

Кстати l1ght тоже нашел оба эти варианта, но не отписал ТС, видимо решив, что я передам, ну или для него это не очень значимо.

В любом случае, восстанавливаю справедливость.

Самый короткий вариант за Лайтом.

PS

Забыл пояснить курл нотацию, или "Сложный (фигурный) синтаксис",

внутри ${} может быть переменная или функция.
 
Ответить с цитированием