У меня следующая проблема:
Когда я возвращаю переменную «$ haebuCMS_PATHFINDER» в echo () из класса напрямую, это работает. НО, когда я генерирую объект класса и хочу извлечь его из этого объекта, он не работает.
Вы можете мне помочь?
Код:
Часть 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: Объект -> Эхо не работает
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
Вам нужно использовать $this->haebuCMS_PATHFINDER
в вашем конструкторе. В противном случае вы не присваиваете свойство класса, вы просто присваиваете локальную переменную в этом методе.
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
(которого нет) для динамического обращения к свойству.
Других решений пока нет …