我遇到以下问题: 当我直接从类中返回变量“$ haebuCMS_PATHFINDER”时,它可以工作。但是当我生成类的对象并想要从该对象中获取它时,它不起作用。
你能帮帮我吗?守则:
第1部分:班级 - >回声在这里工作
class Pathfinder {
public $haebuCMS_PATHFINDER;
function __construct() {
$motherpath = "C:/xampp/htdocs/haebuCMS";
$haebucms_pathfinder = "/Pathfinder.php";
$haebuCMS_PATHFINDER = $motherpath . $haebucms_pathfinder;
echo("<br>" . $haebuCMS_INDEX . "<br>" . $haebuCMS_PATHFINDER);
}
}
第2部分:对象 - &gt;回声不起作用
include"./Pathfinder.php";
$getPath = new Pathfinder();
function getPathfinder() {
$getPath = new Pathfinder();
$path = $getPath->$haebuCMS_PATHFINDER;
echo("<br><br>Pfad : " . $path . "<br><br>");
include($path);
return new Pathfinder();
}
感谢您的帮助,并接受我糟糕的英语;)!
habux
答案 0 :(得分:1)
您需要在构造函数中使用$this->haebuCMS_PATHFINDER
。否则你没有分配给class属性,你只是在该方法中分配一个局部变量。
class Pathfinder {
public $haebuCMS_PATHFINDER;
function __construct() {
// Asssign to the public property using $this->
$this->haebuCMS_PATHFINDER = "C:/xampp/htdocs/haebuCMS/Pathfinder.php";
}
}
此外,如果您稍后在课外引用该属性,请不要在其前面使用美元符号。
$getPath = new Pathfinder;
// Refer to the public property without using $ before the property name
$path = $getPath->haebuCMS_PATHFINDER;
echo("<br><br>Pfad : " . $path . "<br><br>");
当您使用$getPath->$haebuCMS_PATHFINDER;
时,它期望变量$haebuCMS_PATHFINDER
(不存在)用于动态引用属性。