Это, плохо практикуют/могут проблемы причины?
$_SESSION['stuff to keep']
В противоположность вызову str_replace()
на индексах.
Это плохая практика, но не из-за космоса.
// file foo.php
$_SESSION['stuff to keep'] = 42;
// file bar.php
if ($_SESSION['stufft o keep'] == 42) frobnicate();
Здесь ваш код молчаливо неправильно работает, и поиск ошибки может занять некоторое время. Хорошей практикой является использование имени, усиленного PHP, например, константы класса:
$_SESSION[Stuff::TO_KEEP] = 42;
if($_SESSION[Stuff::TOO_KEEP] == 42)
// error: no constant TOO_KEEP in class Stuff
Затем вы можете определить эту константу к любой константе, которую найдете интересной или читабельной, например, "stuff to keep"
(с пробелами). Конечно, извлечение()
и кастинг к объекту
больше не будет работать, но вы не должны делать это в любом случае с вашим сеансом.
Разрешение пользователю вводить текст в ключи сеанса, конечно, является вопиющей ошибкой в безопасности.
.Вы можете это сделать, это сработает -- и даже если я обычно не делаю этого, когда я устанавливаю ключи моих массивов "вручную", это иногда случается, когда я получаю ключи из файла (например), и у меня никогда не возникало никаких проблем с этим.
Может быть, это может вызвать какую-нибудь проблему, если вы используете функции извлечения
. Если она создает переменные с пробелами в их именах (не знаю), то будет сложно (но не невозможно) получить доступ к вашим переменным.
Это не вызовет проблем, но ключи массивов обычно рассматриваются как имена переменных, поэтому их следует выбирать с теми же самыми соображениями
.Похоже на добавление лишних пробелов... Обычно я не использую пробелы. Но если используете, то обязательно процитируйте ключи массивов.