Dynamische Namespace-Klasse mit Alias
SO,
Ich habe ein Problem mit der dynamischen Objekterstellung mithilfe von Namespaces. Hier ist der Namespace-Code:
namespace Foo
{
class Bar
{
}
}
Jetzt versuche ich, ein Objekt der Klasse zu erschaffenBar
mit:
include('namespace.php');
$sName = 'Bar';
$sClass = '\\Foo\\'.$sName;
$rObj = new $sClass; //correct object
und alles läuft gut damit. Aber jetzt möchte ich einen Alias verwenden und Folgendes tun:
include('namespace.php');
use Foo as Baz;
$sName = 'Bar';
$sClass0= '\\Foo\\'.$sName;
$sClass1= '\\Baz\\'.$sName;
$rObj = new $sClass0; //correct object
$rObj = new $sClass1; //Fatal error
Und ich kann ein Objekt nicht auf diese Weise instanziieren (und der Zugriff über den vollständigen Namen funktioniert immer noch gut). Meine Frage ist also: Ist es irgendwie möglich, über einen Alias auf die Klasse zuzugreifen, und wenn ja, wie? Ich habe auch versucht, bei der Verwendung zuzugreifen$sClass1='Baz\\'.$sName
- Kein Erfolg. Außerdem habe ich deklarierte Klassen über überprüftget_declared_classes()
Funktion, es zeigt, dass ich nur habe\Foo\Bar
Klasse (kein Verweis auf einen Alias).
Ich bin nicht sicher, ob es wichtig ist, aber ich verwende PHP 5.5-Version.