PHP идентичные имена переменных - PullRequest
1 голос
/ 26 января 2012

Я действительно неопытен, когда дело доходит до PHP, и надеюсь, что кто-то может что-то прояснить для меня, когда дело доходит до того, как обрабатываются переменные в PHP.

У меня есть PHP Web App, который я создал, и мне нужно было быстро его скопировать, поэтому я просто скопировал и вставил это приложение в новую папку на том же сервере.

Мне интересно, есть ли опасения, если приложения в 2 разных папках имеют одинаковые имена переменных?

Я думаю о случайной ситуации перезаписи.Если «нет», то может ли кто-нибудь объяснить мне, почему это не касается?

Ответы [ 2 ]

3 голосов
/ 26 января 2012

Нет, между глобальными переменными приложения не будет никаких коллизий, если два каталога приложений действительно отделены друг от друга и не содержат файлы друг от друга. Когда выполняется PHP-скрипт, инициирующий его HTTP-запрос может рассматриваться как изолированный инцидент. Он отделен и изолирован от всех других запросов к тому же приложению (даже одновременно) и от других приложений.

Каждый сценарий получает свое собственное пространство имен переменных при запуске, и эта среда завершается и удаляется из памяти по завершении сценария.

Теперь, если вы используете $_SESSION и оба приложения используют одно и то же значение для session_name() и работают на одном доменном имени, существует вероятность того, что значения сохранятся в $_SESSION может столкнуться между экземплярами вашего приложения. Это просто решается путем изменения значения для одного из приложений по умолчанию PHPSESSID:

// Application 1
session_name("APP1");
session_start();

// Application 2
session_name("APP2");
session_start();

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

0 голосов
/ 26 января 2012

В моем мнении вы можете или не можете использовать имена переменных индентика в разных папках.это зависит от функциональности вашего приложения.вам нужно сделать небольшое исследование в Google 'scop глобальных и локальных переменных в php'.

Короче говоря, да, вы можете дублировать приложение в новую папку, вам просто нужно обновить / сбросить пути (например, пути включаемых файлов) и параметры подключения к базе данных (если ваше приложение использует базу данных для хранения данных).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...