M'intéressant de plus en plus à la poo en php5, j'aurais besoin d'un peu d'explications sur les méthodes magiques, car la doc officielle est un peu juste sur ces méthodes, et peu de tutos expliquent l'utilisation de ces méthodes.
Ma 1ère question est sur la méthode __unset(), je ne comprends pas trop à quoi elle sert et comment l'on doit s'en servir(y faire appel).
Par exemple dans ce bout de code(pas sûr qu'il soit correct), entre la fonction __destruct et __unset, c'est quoi la différence ?
class machin
{
public $a;
function __construct($a)
{
$this=>a=$a;
}
function __unset()
{
unset($this->a);
}
function __destruct()
{
unset($this->a);
}
}
Ensuite ma 2nde question porte sur la méthode __clone(), pareil, je ne comprends pas bien à quoi elle sert, ce bout de code ne serait pas équivalent ?
class machin
{
public $file;
private $copie;
function __construct($dir)
{
$this->file=file_get_contents($dir);
$this->copie=$this->file;
}
function resetFile()
{
$this->file=$this->copie;
}
}
Ensuite, une 3ème question portant sur __tostring()J'ai vu sur le tuto de ce site, que donc cette fonction est appelée lors d'un echo de "l'objet", mais est-ce que l'on peut affecter à une autre variable au préalable ?
Par exemple:
$var = 'du texte';
$machin = new machin();
$var .= $machin; // je doute que ceci fonctionne ...
echo $var
Pour l'instant dans ma classe, j'ai une fonction qui fait ceci :
function affecteMachin()
{
return $this->file;
}
Est-ce que __tostring() revient à la même chose ?Voilà, c'est tout (pour l'instant).
Merci d'avance pour vos explications.