PHP OOP - Klasse en Objekte
'n Klas is 'n sjabloon vir voorwerpe, en 'n voorwerp is 'n geval van klas.
OOP Geval
Kom ons neem aan ons het 'n klas met die naam Fruit. 'n Vrug kan eienskappe hê soos naam, kleur, gewig, ens. Ons kan veranderlikes soos $naam, $kleur en $gewig definieer om die waardes van hierdie eienskappe te hou.
Wanneer die individuele voorwerpe (appel, piesang, ens.) geskep word, erf hulle al die eienskappe en gedrag van die klas, maar elke voorwerp sal verskillende waardes vir die eienskappe hê.
Definieer 'n klas
'n Klas word gedefinieer deur die class
sleutelwoord te gebruik, gevolg deur die naam van die klas en 'n paar krulhakies ({}). Al sy eienskappe en metodes gaan binne die draadjies:
Sintaksis
<?php
class Fruit {
// code goes here...
}
?>
Hieronder verklaar ons 'n klas genaamd Fruit wat bestaan uit twee eienskappe ($name en $color) en twee metodes set_name() en get_name() vir die opstel en kry van die $name eiendom:
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
?>
Let wel: In 'n klas word veranderlikes eienskappe genoem en funksies word metodes genoem!
Definieer voorwerpe
Klasse is niks sonder voorwerpe nie! Ons kan veelvuldige voorwerpe uit 'n klas skep. Elke voorwerp het al die eienskappe en metodes wat in die klas gedefinieer is, maar hulle sal verskillende eienskapwaardes hê.
Objekte van 'n klas word geskep deur die new
sleutelwoord te gebruik.
In die voorbeeld hieronder is $apple en $banana gevalle van die klas Fruit:
Voorbeeld
<?php
class Fruit {
// Properties
public
$name;
public $color;
// Methods
function
set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
}
$apple = new Fruit();
$banana = new Fruit();
$apple->set_name('Apple');
$banana->set_name('Banana');
echo $apple->get_name();
echo "<br>";
echo $banana->get_name();
?>
In die voorbeeld hieronder voeg ons nog twee metodes by klas Fruit, om die $kleur-eienskap op te stel en te kry:
Voorbeeld
<?php
class Fruit {
// Properties
public $name;
public $color;
// Methods
function set_name($name) {
$this->name = $name;
}
function get_name() {
return $this->name;
}
function set_color($color) {
$this->color = $color;
}
function get_color() {
return $this->color;
}
}
$apple = new Fruit();
$apple->set_name('Apple');
$apple->set_color('Red');
echo "Name: " . $apple->get_name();
echo "<br>";
echo "Color: " . $apple->get_color();
?>
PHP - Die $hierdie sleutelwoord
Die $this sleutelwoord verwys na die huidige objek, en is slegs binne metodes beskikbaar.
Kyk na die volgende voorbeeld:
Voorbeeld
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
?>
So, waar kan ons die waarde van die $name eiendom verander? Daar is twee maniere:
1. Binne die klas (deur 'n set_name() metode by te voeg en $hier te gebruik):
Voorbeeld
<?php
class Fruit {
public $name;
function set_name($name) {
$this->name = $name;
}
}
$apple = new Fruit();
$apple->set_name("Apple");
echo $apple->name;
?>
2. Buite die klas (deur die eiendomswaarde direk te verander):
Voorbeeld
<?php
class Fruit {
public $name;
}
$apple = new Fruit();
$apple->name = "Apple";
echo $apple->name;
?>
PHP - instansie van
Jy kan die instanceof
sleutelwoord gebruik om te kyk of 'n voorwerp aan 'n spesifieke klas behoort:
Voorbeeld
<?php
$apple = new Fruit();
var_dump($apple instanceof
Fruit);
?>