2012-01-26 25 views
1

PHPに関しては、私は本当に経験がありません。PHPで変数を扱う方法については、誰かが私に何かを明確にすることを期待しています。PHP同じ変数名

私はPHP Web Appを作成しました。このWeb Appは簡単に作成する必要があります。このアプリケーションをコピーして、同じサーバー上の新しいフォルダに貼り付けるだけです。

2つの異なるフォルダにあるアプリケーションの変数名がまったく同じであれば心配はありますか?

私は偶発的な上書き状況を考えています。 "いいえ"の場合、誰かが私に理由がない理由を説明することができますか?

+0

これらの変数は、いずれかの時点で満たされますか?たとえば、あるものが含まれているか、または必要とされていますか? – Joseph

+0

2つのフォルダ間で変数を渡しません。 何が起こったのかは、ユーザーが同じデータを入力するが、フロントエンドのデザインがアプリごとに異なるということです。バックエンドで接続するシステムも異なります。 すべての目的のために、それらは同じコードでちょうど別のアプリです。私はこれをより合理化して維持しやすくするために書き直しを計画しています。 - > App1の - >統一エンジン - >バックエンドシステム1 値1 - > App2の - >統一エンジン - >バックエンドシステム2 統一エンジンビーイング 値1: 今後私のような何かをしたいと思います要求を追跡して分離することができます – user1170528

+0

あなたの指示がそうでない限り、システム内で衝突、衝突、またはクラッシュすることはありません。 – B4NZ41

答えて

3

いいえ、2つのアプリケーションディレクトリが完全に分離されてお互いのファイルを含んでいない限り、アプリケーションのグローバル変数間に衝突はありません。 PHPスクリプトが実行されると、それを開始したHTTPリクエストは独立したインシデントと考えることができます。これは、同じアプリケーション(他のアプリケーションから)と他のアプリケーションからの他のすべての要求と分離され、分離されています。

各スクリプトは、実行開始時に独自の変数名前空間を取得し、その環境は終了し、スクリプトが完了するとメモリから削除されます。あなたが$_SESSIONを使用することが起こると、両方のアプリケーションがsession_name()に同じ値を使用し、同じドメイン名を実行した場合

は今、あなたのアプリケーションインスタンス間で衝突することができます$_SESSIONに固執れる値可能性があります。

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

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

あなたはおそらくすでにこのことを認識しているが、私はそれが完全であると言うでしょう:これは単にデフォルトPHPSESSIDからのアプリケーションのいずれかの値を変更することによって解決されます。可能であれば、2つのアプリケーションインスタンス間で共有でき、両方のアプリケーションインスタンスに含まれるコードの側面を抽象化することをお勧めします。これはDRY principleに準拠しており、両方のアプリケーションが共有するコードを変更する必要がある場合は、頭痛の種をたくさん節約できます。

+0

マイケルありがとう!それはまさに私が確認したい、または確認したくないものです! 私はちょうどまだ書き換えを計画していない/まだ時間がなかった! – user1170528

0

私のopnionでは、異なるフォルダにインデント変数名を使用する場合と使用しない場合があります。これはアプリの機能に依存します。あなたはgoogle 'phpのグローバル変数とローカル変数のスコープに関する少しの研究をする必要があります。

要するに、アプリケーションを新しいフォルダに複製することができます。パス(インクルードファイルのパスなど)とデータベース接続strnigs(データを保存するためにデータベースを使用する場合)を更新/リセットするだけです。

関連する問題