Это также работает для меня.
Взгляните на живой пример вашего кода здесь.
Однако, естьНесколько вещей, которые вы должны изменить в своем классе.
Во-первых, Гарви делает хорошее замечание, что вы не должны использовать var
.Это более старая версия PHP4, менее ориентированная на ООП.Скорее объявите каждую переменную public
или private
.Фактически, вы должны объявлять каждую функцию public
или private
тоже.
Как правило, большинство классов имеют закрытые переменные, так как обычно вы хотите изменять переменные только определенным образом.Чтобы добиться этого контроля, вы обычно устанавливаете несколько открытых методов, чтобы позволить клиентским функциям взаимодействовать с вашим классом только ограниченным заранее определенным образом.
Если у вас есть getter
, вы, вероятно, захотите setter
, посколькуони обычно используются с private
переменными, как я описал выше.
Последнее замечание: функции с именем get
обычно return
имеют значение.Если вы хотите display
значение, обычно используется такое имя, как display_path
или show_path
:
<?php
class PageClass
{
private $absolute_path = NULL;
public function set_absolute_path($path)
{
$this->absolute_path = $path;
}
public function display_absolute_path()
{
echo $this->absolute_path;
}
}
$page = new PageClass();
$page->set_absolute_path("http://localhost:8888/smile2/organic/");
$page->display_absolute_path();
// The above outputs: http://localhost:8888/smile2/organic/
// Your variable is now safe from meddling.
// This:
// echo $this->absolute_path;
// Will not work. It will create an error like:
// Fatal error: Cannot access private property PageClass::$absolute_path on ...
?>
Пример в реальном времени здесь
В онлайн-справочнике по PHP есть раздел о классах и объектах .