Dan Storm wrote:
> Jesper Staun Hansen skrev:
>>> dbclass::query($sql);
>>>
>>> eller
>>>
>>> $db = new dbclass();
>>> $db->query($sql);
>>>
>>>
>>
>> Har aldrig tænkt over dette.
>> Takker
>
> Umiddelbart vil det ikke være gavnligt at benytte :: fremfor at
> initialisere en instans.
> Du mister friheden i at kunne benytte dig af af flere instancer
> samtidig. Så hold dig til dig at lave en instans hver gang du skal
> benytte en klasse.
klasse::metode betyder at man kalder en statisk funktion, og er faktisk
ret gavnligt :)
Fx
Istedet for at skrive
$obj = new User;
if(!$obj->isLoggedIn()) // do stuff
Så er
if(!User::isLoggedIn()) // do stuff
da meget nemmere og fylder mindre :)
Desuden kan man også "snyde" lidt...
Lad os kigge på User klassen igen
class User
{
public var;
public function __construct() {
$this->var = 'muuh'; // bare et eks :)
}
public static function isLoggedIn() {
$obj = new User;
return $obj->var;
}
Men statiske funktioner er skam meget rare at have, bruger den især
meget ved configs ting - og til initialisering af instanser osv osv.. :)