我有一个代码('require_once'部分无关紧要):
<?php
require_once('../shared/database.php');
class Administration{
public $db;
public $base;
public function __construct(){
$this->db=new Database();
$this->base=new stdClass();
$this->base->url="http://".$_SERVER ['SERVER_NAME'].'/phpp/blog/admin/';
}
}
?>
下面编写的代码正在实现代码(上面写的)。
<?php
require_once('administration.php');
class Articles extends Administration{
public function __construct(){
parent::__construct();}
$announcement='Some text.';
header('Location: '.$this->base->db.'articles.php?announcement='.urlencode($announcement));}
?>
有问题的部分$this->base->db.
如果我将db
变量名称更改为任何其他有效的变量名称,代码仍然有效,但我无法找出原因。
有人知道它是如何工作的吗?
对我来说,代码似乎有很多错别字。也许没有为环境启用错误报告,因为该代码应该不起作用。伪变量$this
在对象上下文中可用。
<?php
require_once('administration.php');
$announcement='Some text.';
$administration = new Administration();
$location = sprintf('%sarticles.php?announcement=%s', $administration->base->url, urlencode($announcement));
header(sprintf('Location: %s', $location));