/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Dobbelt kolon?
Fra : Dude


Dato : 29-08-07 14:12

Hvad er det nu dobbelt kolon :: gør, og bruges til?

Mvh
John

 
 
Dan Storm (29-08-2007)
Kommentar
Fra : Dan Storm


Dato : 29-08-07 19:41

Dude skrev:
> Hvad er det nu dobbelt kolon :: gør, og bruges til?
:: giver dig, kort fortalt, adgang til en klasse uden at have skabt en
instans af den.

dbclass::query($sql);

eller

$db = new dbclass();
$db->query($sql);


--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Staun Hansen (29-08-2007)
Kommentar
Fra : Jesper Staun Hansen


Dato : 29-08-07 19:43

Dan Storm wrote:
> Dude skrev:
>> Hvad er det nu dobbelt kolon :: gør, og bruges til?
> :: giver dig, kort fortalt, adgang til en klasse uden at have skabt en
> instans af den.
>
> dbclass::query($sql);
>
> eller
>
> $db = new dbclass();
> $db->query($sql);
>
>

Har aldrig tænkt over dette.
Takker

Dan Storm (29-08-2007)
Kommentar
Fra : Dan Storm


Dato : 29-08-07 20:06

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.

:)

--
Dan Storm - storm at err0r dot dk / http://err0r.dk

Tro ikke brugerne vil gøre noget for at undgå dit killfilter
- Så vigtig er du heller ikke!

Jesper Staun Hansen (29-08-2007)
Kommentar
Fra : Jesper Staun Hansen


Dato : 29-08-07 20:09

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.
>
> :)
>

Ja så sandelig, men viden skal man altid takke for :)

Martin (30-08-2007)
Kommentar
Fra : Martin


Dato : 30-08-07 15:55

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.. :)

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408924
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste