В PHP, там вред в выполнении session_start () многократно?

По-видимому, существует некоторый крошечный хит производительности, но кроме того?

31
задан Machavity 4 September 2019 в 16:02
поделиться

5 ответов

From docs :

Начиная с PHP 4.3.3, вызов session_start () после того, как сеанс был ранее запущен, приведет к ошибке уровня E_NOTICE. Кроме того, запуск второго сеанса будет просто проигнорирован.

Так что нет, это не «причинит вред», но выдаст ошибку. И тот факт, что это происходит, вероятно, является индикатором того, что вы делаете что-то неправильно, и, возможно, вам придется переосмыслить, как построен ваш код.

27
ответ дан 27 November 2019 в 21:28
поделиться

Если сессия уже открыта, то она вернет уведомление об ошибке, а новая сессия будет проигнорирована. Так что вреда не будет, но у вас будет досадная ошибка.

Но... если вы находите необходимость делать это, то это может быть симптомом того, что ваш код плохо организован. Возможно, вам будет полезно посмотреть, как можно избежать повторения лишних задач, таких как запуск сеанса.

1
ответ дан 27 November 2019 в 21:28
поделиться

Читая документацию для session_start, все, что я вижу:

По состоянию на PHP 4.3.3, вызов session_start () после того, как сеанс был ранее запущен, приведет к ошибке уровня E_NOTICE . Кроме того, запуск второго сеанса будет просто проигнорирован.

Итак, вы получите E_NOTICE , и вас проигнорируют.

4
ответ дан 27 November 2019 в 21:28
поделиться

Я обычно помещаю оператор запуска сессии в включаемый файл, который я требую_once. Но я не думаю, что должна возникнуть проблема с несколькими вызовами.

2
ответ дан 27 November 2019 в 21:28
поделиться

Начиная с PHP 4.3.3, вызов session_start (), когда сеанс уже запущен, приведет к предупреждению E_NOTICE. Второй вызов session_start () будет просто проигнорирован. Вы можете проверить, был ли запущен сеанс первым, с помощью:

if (session_id() == "")
  session_start();
54
ответ дан 27 November 2019 в 21:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: