mehrere `namespace` in einer Datei
zwei Möglichkeiten
-
durch verschiedene Namespace-Blöcke
-
durch Batch-Declaration.
1. mehrere Namespace-Blöcke (empfohlen)
<?php
namespace MeinNamespace\ErsteKlasse;
function hello() {
return "Hallo aus dem ersten Namespace";
}
const VERSION = "1.0";
namespace MeinNamespace\ZweiteKlasse;
function hello() {
return "Hallo aus dem zweiten Namespace";
}
namespace {
// Globaler Namespace (Fallback)
function globalHello() {
return "Hallo aus dem globalen Namespace";
}
}
2. Batch-Declaration (ohne geschweifte Klammern)
<?php
namespace MeinNamespace\Utils;
function add(int $a, int $b): int {
return $a + $b;
}
namespace MeinNamespace\Helpers;
function formatDate(DateTime $date): string {
return $date->format('d.m.Y');
}
Aufruf der Funktionen
<?php
require_once 'meine_datei.php';
use function MeinNamespace\Utils\add;
use function MeinNamespace\Helpers\formatDate;
echo add(5, 3); // Ausgabe: 8
echo formatDate(new DateTime()); // Ausgabe: 24.03.2026
// oder direkt mit vollständigem Pfad
echo \MeinNamespace\Utils\add(10, 20);
Beispiel Tools.php
<?php
namespace App\Utils;
class StringUtils
{
public static function capitalize(string $str): string
{
return ucfirst($str);
}
}
namespace App\Helpers;
function debug(mixed $var): void
{
echo "<pre>";
var_dump($var);
echo "</pre>";
}