[help] met een operator
MRZ
30/12/2008 20:51:00Hoi ik vroeg me af wat voor operator '->' is :O ik zie het heeel erg vaak dus ik
vraag me af wat het doet
vraag me af wat het doet
PHP hulp
22/11/2024 16:02:59Hipska BE
30/12/2008 20:53:00Dit heeft te maken met classes.
object is een instantie van een classe.
met -> voer je een methode van die classe uit.
$object->methode();
object is een instantie van een classe.
met -> voer je een methode van die classe uit.
$object->methode();
MRZ
30/12/2008 20:56:00Lode
30/12/2008 21:41:00Stapje verder nog het is procedural method.
Je hebt in php5 ook static methods. In php6 wellicht zelfs static classes.
Maar goed even kort het verschil.
Een static method heeft geen instantie van een class nodig en een procedurele wel.
Static functies kunnen overigens wel interne vars gebruiken e.d.
Maar ik denk dat je maar eens even wat handleidingen moet lezen dan eerst ;)
Je hebt in php5 ook static methods. In php6 wellicht zelfs static classes.
Maar goed even kort het verschil.
Een static method heeft geen instantie van een class nodig en een procedurele wel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
class User{
protected $_naam = 'Kees';
public function __construct(){} // constructor
public function getName(){
return $this->_naam; //Kees
}
static public function getClassName(){
return __CLASS__; //User
}
}
//procedureel, dus eerst object aanmaken!
$u = new User(); //roept constructor aan,
//() optioneel als er geen params voor de constructor zijn.
echo $u->getName().'<br />'.PHP_EOL;
//static (meer verzamel functies over het algemeen...
echo User::getClassName().'<br />';
?>
class User{
protected $_naam = 'Kees';
public function __construct(){} // constructor
public function getName(){
return $this->_naam; //Kees
}
static public function getClassName(){
return __CLASS__; //User
}
}
//procedureel, dus eerst object aanmaken!
$u = new User(); //roept constructor aan,
//() optioneel als er geen params voor de constructor zijn.
echo $u->getName().'<br />'.PHP_EOL;
//static (meer verzamel functies over het algemeen...
echo User::getClassName().'<br />';
?>
Static functies kunnen overigens wel interne vars gebruiken e.d.
Maar ik denk dat je maar eens even wat handleidingen moet lezen dan eerst ;)
Ed
30/12/2008 21:53:00@Lode:
Een static functie hoeft niet perse een instance te hebben, tenzij je dat zelf zo ontwerpt. Denk aan een singleton design pattern. Waarbij er slechts 1 instance van een class mag bestaan.
Een static functie hoeft niet perse een instance te hebben, tenzij je dat zelf zo ontwerpt. Denk aan een singleton design pattern. Waarbij er slechts 1 instance van een class mag bestaan.
PHP erik
30/12/2008 22:25:00Nog sterker, een static function heeft helemaal niets te maken met een instance. Met singleton gebruik je een statische functie (en variabele) om een instance in op te slaan, maar ook die heeft geen verband met de instance zelf, hij houdt 'm alleen vast.