PHP Namespaces

Mit PHP-Namespaces ist es möglich einen Funktionsnamen mehrfach in verschiedenen Namespaces zu verwenden.  

Als Beispiel kann die Funktion mit dem Namen "MyFunction" in 2 verschiedenen Libraries verwendet werden.

hier ein Beispiel ohne Namespace

Library1, File: Lib1.php

<?php

function MyFunction() {
	return "this is MyFunction in Library1";
}

?>

Library2, File: Lib2.php

<?php

function MyFunction() {
	return "this is MyFunction in Library2";
}

?>

 

Ich lade die 2 Dateien in z.B. index.php:

<?php

header('Content-type: text/plain');

require_once('lib1.php');
require_once('lib2.php');

echo MyFunction() . "\n";

?>

Ausgabe:

Fatal error:  Cannot redeclare MyFunction() (previously declared in  ...

der Funktionsname kann nicht mehrfach verwendet werden. Eine Lösung zu dem Problem bieten Namespaces:

Namespace

Namespaces sind so ähnlich wie Ordner in einem Dateisystem. Durch das Hinzufügen von Namespace\ können nur noch Funktionen in dem Namespace ausgeführt werden.

lib1.php

<?php
namespace Lib1;
function MyFunction() {
	return "this is MyFunction in Library1";
}

?>

 lib2.php

<?php
namespace Lib2;
function MyFunction() {
	return "this is MyFunction in Library2";
}
?>

index.php:

<?php

header('Content-type: text/plain');

require_once('lib1.php');
require_once('lib2.php');

echo Lib1\MyFunction() . "\n";
echo Lib2\MyFunction() . "\n";
?>

Ausgabe:

this is MyFunction in Library1
this is MyFunction in Library2
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


veröffentlicht am 24.09.2017 von Bernhard
geändert am 25.09.2017 von Bernhard



Fragen / Kommentare


Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Außerdem geben wir Informationen zu Ihrer Nutzung unserer Website an unsere Partner für soziale Medien, Werbung und Analysen weiter. Details anzeigen.