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 -naamruimten


PHP-naamruimten

Naamruimten zijn kwalificaties die twee verschillende problemen oplossen:

  1. Ze zorgen voor een betere organisatie door klassen te groeperen die samenwerken om een ​​taak uit te voeren
  2. Ze laten toe dat dezelfde naam voor meer dan één klasse wordt gebruikt

U kunt bijvoorbeeld een reeks klassen hebben die een HTML-tabel beschrijven, zoals Tafel, Rij en Cel, terwijl u ook een andere reeks klassen hebt om meubels te beschrijven, zoals Tafel, Stoel en Bed. Naamruimten kunnen worden gebruikt om de klassen in twee verschillende groepen in te delen en tegelijkertijd te voorkomen dat de twee klassen Table en Table door elkaar worden gehaald.


Een naamruimte declareren

Naamruimten worden aan het begin van een bestand gedeclareerd met het namespacetrefwoord:

Syntaxis

Declareer een naamruimte met de naam Html:

namespace Html;

Opmerking: een namespacedeclaratie moet het eerste zijn in het PHP-bestand. De volgende code zou ongeldig zijn:

<?php
echo "Hello World!";
namespace Html;
...
?>

Constanten, klassen en functies die in dit bestand zijn gedeclareerd, behoren tot de Html - naamruimte:

Voorbeeld

Maak een tabelklasse in de Html-naamruimte:

<?php
namespace Html;
class Table {
  public $title = "";
  public $numRows = 0;
  public function message() {
    echo "<p>Table '{$this->title}' has {$this->numRows} rows.</p>";
  }
}
$table = new Table();
$table->title = "My table";
$table->numRows = 5;
?>

<!DOCTYPE html>
<html>
<body>

<?php
$table->message();
?>

</body>
</html>

Voor verdere organisatie is het mogelijk om geneste naamruimten te hebben:

Syntaxis

Declareer een naamruimte met de naam Html in een naamruimte met de naam Code:

namespace Code\Html;

Naamruimten gebruiken

Elke code die op een namespacedeclaratie volgt, werkt binnen de naamruimte, dus klassen die bij de naamruimte horen, kunnen worden geïnstantieerd zonder enige kwalificatie. Om toegang te krijgen tot klassen van buiten een naamruimte, moet aan de klasse de naamruimte zijn gekoppeld.

Voorbeeld

Gebruik klassen uit de HTML-naamruimte:

$table = new Html\Table()
$row = new Html\Row();

Wanneer veel klassen uit dezelfde naamruimte tegelijkertijd worden gebruikt, is het gemakkelijker om het namespacetrefwoord te gebruiken:

Voorbeeld

Gebruik klassen uit de Html-naamruimte zonder de Html\qualifier:

namespace Html;
$table = new Table();
$row = new Row();

Naamruimte alias

Het kan handig zijn om een ​​naamruimte of klasse een alias te geven om het schrijven te vergemakkelijken. Dit gebeurt met het usetrefwoord:

Voorbeeld

Geef een naamruimte een alias:

use Html as H;
$table = new H\Table();

Voorbeeld

Geef een klasse een alias:

use Html\Table as T;
$table = new T();