Beste forum leden,

Vandaag had ik het toevallig nodig,voor mijn CMS. Het was namelijk de bedoeling dat ik een varaiable had en dat wanneer ik deze veranderde dat ik met een bepaalde functie dus bijvoorbeeld
<?php $naam = Vhistoryback($naam,1);?>
de geschiedenis van $naam kan bekijken.Is hier in php een functie voor ? Of heeft iemand deze misschien zelf geschreven ? Hier een voorbeeldje van wat ik precies bedoel:

<?php 
$website = Vnieuw('www.phphulp.nl');
$website = Vnieuw('www.asphulp.nl');
echo $naam;//Laat dan "www.asphulp.nl" zien!


$website = Vhistoryback($website,1);//Gaat 1 terug in de geschiedenis van $website
echo $website;//Laat dan "www.phphulp.nl" zien !

?>


Weet niet of het helemaal duidelijk is. Maar iemand een idee of een functie ? Zo niet dan moet ik hem zelf maar gaan maken :)
Zoiets:
<?php

class VarHis
{
protected static $history = array();

public static function override( $val )
{
self::$history[] = $val;
return $val;
}

public static function history()
{
return self::$history;
}

public static function historyBack( $steps )
{
$result = self::history();
$len = count($result) - 1;

if( isset($result[$len - $steps]) )
return $result[$len - $steps];
return false;
}
}

$website = VarHis::override('www.phphulp.nl');
$website = VarHis::override('www.asphulp.nl');
echo $website; // www.asphulp.nl

$website = VarHis::override('www.rubyhulp.nl');
echo $website; // www.rubyhulp.nl

$website = VarHis::history();
var_dump($website); // array( 'www.phphulp.nl', 'www.asphulp.nl', 'www.rubyhulp.nl' )

$website = VarHis::historyBack(2);
echo $website; // 'www.phphulp.nl'

var_dump( VarHis::historyBack(3) ); // false

?>
Helaas werkt dit maar voor 1 variabele per aanvraag. Dus zul je het misschien niet static moeten maken.
Wouter bedankt voor je reactie. Dit is inderdaad wat ik bedoel. Zal er over uur even naar kijken als ik thuis ben.

[size=xsmall]Toevoeging op 28/03/2012 17:53:37:[/size]

Wouter ik heb het eventjes getest.Maar krijg meteen een paar errors. Zelf ben ik nog niet zo ervaren met OOP maar ik krijg de error
Parse error: syntax error, unexpected T_VAR, expecting T_STRING
Op lijn 2!
Dus toen dacht ik wat als ik de class naam verander. Maar dat werkt ook niet.
Toen kwam er later achter dat het niet aan de class naam licht maar aan de regels erna. Ik zelf zie het probleem er niet in -,-

Iemand die het ziet?
Zie code die Wouter stuurde!
Ik heb het aangepast, dit werkt. Het komt omdat Var een gedefinieerde naam is en new ook, die moet je dus allebei veranderen.
Wouter,
Bedankt voor het veranderen.
Ik kon het probleem niet vinden doordat wanneer ik Var veranderde de error nog steeds aangegeven werd op regel 2.

Reageren