Cela fonctionne aussi pour moi.
Take a look at a live example of your code here.
Cependant, il y a quelques choses que vous devriez changer votre classe. Tout d'abord, Garvey fait un bon point que vous ne devriez pas utiliser var
. C'est l'ancienne version consciente de PHP4, moins OOP. Déclarez plutôt chaque variable public
ou private
. En fait, vous devez également déclarer chaque fonction public
ou private
.
Généralement, la plupart des classes ont des variables privées, puisque vous ne voulez généralement que changer les variables de manière spécifique. Pour réaliser ce contrôle, vous définissez généralement plusieurs méthodes publiques pour permettre aux fonctions client d'interagir avec votre classe uniquement de manière prédéterminée et restreinte.
Si vous avez un getter
, vous voudrez probablement un setter
, car ils sont généralement utilisés avec des variables private
, comme je l'ai décrit ci-dessus.
Une dernière note est que les fonctions nommées get
habituellement return
une valeur. Si vous voulez display
une valeur, il est d'usage d'utiliser un nom comme display_path
ou 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 ...
?>
Live Example Here
There's a section on classes and objects dans la référence PHP en ligne.