PHP -zelfstudie

PHP HOME PHP-intro PHP-installatie PHP-syntaxis PHP-opmerkingen PHP-variabelen PHP-echo / afdrukken PHP-gegevenstypen PHP-strings PHP-nummers PHP-wiskunde PHP-constanten PHP-operators PHP Als...Anders...Anders PHP-switch PHP-loops PHP-functies PHP-arrays PHP Superglobals PHP RegEx

PHP- formulieren

PHP-formulierverwerking PHP-formuliervalidatie PHP-formulier vereist URL/e-mail van PHP-formulier PHP-formulier voltooid

PHP Geavanceerd

PHP-datum en tijd PHP opnemen PHP-bestandsverwerking PHP-bestand openen/lezen PHP-bestand maken/schrijven PHP-bestand uploaden PHP-cookies PHP-sessies PHP-filters PHP-filters geavanceerd PHP-callback-functies PHP JSON PHP-uitzonderingen

PHP OOP

PHP Wat is OOP PHP-klassen/objecten PHP-constructor PHP-vernietiger PHP-toegangsmodificaties PHP-overerving PHP-constanten PHP abstracte lessen PHP-interfaces PHP-kenmerken PHP statische methoden Statische eigenschappen van PHP PHP-naamruimten PHP-iterables

MySQL- database

MySQL-database MySQL Connect MySQL DB maken MySQL-tabel maken MySQL Gegevens invoegen MySQL Laatste ID ophalen MySQL Meerdere invoegen MySQL voorbereid MySQL Gegevens selecteren MySQL Waar MySQL Bestel op MySQL Gegevens verwijderen MySQL-updategegevens MySQL-limietgegevens

PHP XML

PHP XML-parsers PHP SimpleXML-parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

Ajax-intro AJAX PHP AJAX-database AJAX XML Live zoeken in Ajax Ajax-peiling

PHP- voorbeelden

PHP-voorbeelden PHP-compiler PHP-quiz PHP-oefeningen PHP-certificaat

PHP- referentie

PHP-overzicht PHP-array PHP-agenda PHP-datum PHP-map PHP-fout PHP-uitzondering PHP-bestandssysteem PHP-filter PHP FTP PHP JSON PHP-sleutelwoorden PHP Libxml PHP-e-mail PHP-wiskunde PHP Diversen PHP MySQLi PHP-netwerk PHP-uitvoercontrole PHP RegEx PHP SimpleXML PHP-stream PHP-string Beheer van PHP-variabelen PHP XML-parser PHP-zip PHP-tijdzones

PHP OOP - Klassen en objecten


Een klasse is een sjabloon voor objecten en een object is een instantie van een klasse.


OOP-zaak

Laten we aannemen dat we een klasse hebben met de naam Fruit. Een Fruit kan eigenschappen hebben zoals naam, kleur, gewicht, enz. We kunnen variabelen zoals $name, $color en $weight definiëren om de waarden van deze eigenschappen vast te houden.

Wanneer de individuele objecten (appel, banaan, enz.) worden gemaakt, erven ze alle eigenschappen en gedragingen van de klasse, maar elk object heeft verschillende waarden voor de eigenschappen.


Definieer een klasse

Een klasse wordt gedefinieerd door het class trefwoord te gebruiken, gevolgd door de naam van de klasse en een paar accolades ({}). Al zijn eigenschappen en methoden gaan binnen de accolades:

Syntaxis

<?php
class Fruit {
  // code goes here...
}
?>

Hieronder declareren we een klasse met de naam Fruit die bestaat uit twee eigenschappen ($name en $color) en twee methoden set_name() en get_name() voor het instellen en verkrijgen van de eigenschap $name:

<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Methods
  function set_name($name) {
    $this->name = $name;
  }
  function get_name() {
    return $this->name;
  }
}
?>

Opmerking: in een klasse worden variabelen eigenschappen genoemd en functies worden methoden genoemd!


Objecten definiëren

Lessen zijn niets zonder objecten! We kunnen meerdere objecten van een klasse maken. Elk object heeft alle eigenschappen en methoden die in de klasse zijn gedefinieerd, maar ze hebben verschillende eigenschapswaarden.

Objecten van een klasse worden gemaakt met behulp van het newtrefwoord.

In het onderstaande voorbeeld zijn $apple en $banana instanties van de klasse 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 het onderstaande voorbeeld voegen we nog twee methoden toe aan de klasse Fruit, voor het instellen en verkrijgen van de eigenschap $color:

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 - Het $this trefwoord

Het sleutelwoord $this verwijst naar het huidige object en is alleen beschikbaar binnen methoden.

Kijk naar het volgende voorbeeld:

Voorbeeld

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
?>

Dus, waar kunnen we de waarde van de eigenschap $name wijzigen? Er zijn twee manieren:

1. Binnen de klasse (door een methode set_name() toe te voegen en $this te gebruiken):

Voorbeeld

<?php
class Fruit {
  public $name;
  function set_name($name) {
    $this->name = $name;
  }
}
$apple = new Fruit();
$apple->set_name("Apple");

echo $apple->name;
?>

2. Buiten de klasse (door de eigenschapswaarde direct te wijzigen):

Voorbeeld

<?php
class Fruit {
  public $name;
}
$apple = new Fruit();
$apple->name = "Apple";

echo $apple->name;
?>

PHP - instantievan

U kunt het instanceoftrefwoord gebruiken om te controleren of een object tot een specifieke klasse behoort:

Voorbeeld

<?php
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>