はじめまして。
いつも楽しく分かりやすい動画をありがとうございます。
本日は、複数の名前空間が同じ親クラスを持つことが出来ないのか分からなかったため、ご質問させて頂きました。
(例)
…base.php (共通の親クラスにしたい)…
<?php
class Posts{
protected $text;
function __construct($text){
$this->text=$text;
}
}
…name1.php (名前空間1)…
<?php
namespace User1\Test1;
require("base.php");
class Red extends Posts{
public function show(){
echo $this->text."は赤色!".PHP_EOL;
}
}
…name2.php (名前空間2)…
<?php
namespace User2\Test2;
require("base.php");
class Green extends Posts{
public function show(){
echo $this->text."は緑色!".PHP_EOL;
}
}
…func.php (実行)…
<?php
require("name1.php");
require("name2.php");
$post1=new User1\Test1\Red("チームA");
$post2=new User2\Test2\Green("チームB");
$post1->show();
$post2->show();
上記のコードで実行すると、
Class 'User1\Test1\Posts' not found
と出てきました(func.php
で親クラスをrequire
しても同じでした)。
親クラスをbase.php
からrequire
せずに名前空間のファイル内に書くと上手く動きましたが、毎回書いていれば時間がかかり過ぎてしまうのではと思いました。
どのような解決策があるのでしょうか?
お忙しいところ恐縮ですが、教えて頂けたらありがたいです。
この回答を見るにはプレミアムプランへの登録が必要です
プレミアムプランとは?