我有两个类:为什么PHP假设这个变量在任何地方还没有被使用时是一个字符串?
class BaseResource {
public $url;
protected $relativeUrl;
protected $parentUrl;
public function BaseResource($relUrl, $parentUrl) {
$this->relativeUrl = $relUrl;
$this->parentUrl = $parentUrl;
$this->url = url_to_absolute($parentUrl, $relUrl);
}
}
class XMLResource extends BaseResource {
private $xml;
public function XMLResource($relUrl, $parentUrl, $xml) {
parent::BaseResource($relUrl, $parentUrl);
$this->$xml = $xml;
}
}
这一切都非常简单的东西,但是当我执行下面的代码我得到一个错误。
$relUrl = "../something.html";
$parentUrl = "http://example.com/test/index.php";
$xml = new DOMDocument();
$xmlRes = new XMLResource($relUrl, $parentUrl, $xml);
Catchable fatal error: Object of class DOMDocument could not be converted to string
为什么被认为XMLResource::xml
是一个字符串?我还没有使用它,所以我会认为它是未定义的,直到它被设置,然后它将采取什么类型的设置?
我真的是个白痴。谢谢! –