【週刊ドットインストール】 『データで学ぶアルゴリズム Level 1-2』を運営中、Level 1-2も来週リリース予定!
いつも動画にて楽しく学習させていただいております。
今回のレッスンでは一人でコードを書いていますが、仮に他の共同作業者とコードを書いていると想定しての質問になります。
仮に現在の index.php のコードはレッスンであるように
index.php
use MyApp\Todo; $todo = new Todo($pdo);
とします(一部抜粋)。
この状態で他の共同作業者が知らずに index.php のコード内に別のTodoクラスを作成し、$todo = new Todo($pdo); とは別のインスタンス $foo = new Todo(); を作成したとします。
$todo = new Todo($pdo);
$foo = new Todo();
この場合、use MyApp\Todo;は$todo = new Todo($pdo); と $foo = new Todo(); の両方に適用されるのでしょうか?
use MyApp\Todo;
もしそうであるならば、 $todo = new Todo($pdo);を$todo = new MyApp\Todo($pdo); のように書き換えて区別するのでしょうか?
$todo = new MyApp\Todo($pdo);
また、上記のような index.php ファイル内での同じ名前のクラスによる衝突の他に別ファイルで作成された同名のクラスの衝突のケースも考えたのですが、同じライブラリ(今回であれば app )に同じ名前のファイルは作成できないのでそのようなことにはならないと考えました。実際のところ現場では別ファイル、同じクラス名で衝突する可能性はあるのでしょうか(別ライブラリで作成された同じ名前のクラスのファイルなど)?
app
もし、見当違いな質問でしたら申し訳ありません。 詳解PHP オブジェクト編 » #25 名前空間を使ってみよう も拝見し考えたのですが答えが出ず質問させていただきました。
ご回答よろしくお願いいたします。
ドットインストールは、3分動画でマスターできるプログラミング学習サービスです。
3分で気軽に学習でき、スマートフォンからも視聴可能です。ホームページやWebサービスの制作を通して、実践的にプログラミングを学べます。
他にも、ゲーム制作やデータ分析・機械学習・AIに使われる言語まで幅広くカバー。学びたい分野のレッスンがきっと見つかります。
この回答を見るにはプレミアムプランへの登録が必要です
いつも動画にて楽しく学習させていただいております。
今回のレッスンでは一人でコードを書いていますが、仮に他の共同作業者とコードを書いていると想定しての質問になります。
仮に現在の
index.phpのコードはレッスンであるようにとします(一部抜粋)。
この状態で他の共同作業者が知らずに
index.phpのコード内に別のTodoクラスを作成し、$todo = new Todo($pdo);とは別のインスタンス$foo = new Todo();を作成したとします。この場合、
use MyApp\Todo;は$todo = new Todo($pdo);と$foo = new Todo();の両方に適用されるのでしょうか?もしそうであるならば、
$todo = new Todo($pdo);を$todo = new MyApp\Todo($pdo);のように書き換えて区別するのでしょうか?また、上記のような
index.phpファイル内での同じ名前のクラスによる衝突の他に別ファイルで作成された同名のクラスの衝突のケースも考えたのですが、同じライブラリ(今回であればapp)に同じ名前のファイルは作成できないのでそのようなことにはならないと考えました。実際のところ現場では別ファイル、同じクラス名で衝突する可能性はあるのでしょうか(別ライブラリで作成された同じ名前のクラスのファイルなど)?もし、見当違いな質問でしたら申し訳ありません。
詳解PHP オブジェクト編 » #25 名前空間を使ってみよう も拝見し考えたのですが答えが出ず質問させていただきました。
ご回答よろしくお願いいたします。