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



Kommentare


Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Mehr Details