Seite 2 von 2

Verfasst: 07.01.2007 20:49
von gn#36
Hast du das mal ausprobiert bei mir gibt das nämlich den Fehler hier:
Fatal error: Can't use function return value in write context in E:\eclipse\Test2\index.php on line 10
Getestet habe ich lediglich diese Zeilen:

Code: Alles auswählen

$const = 'SID';
echo 'ASDF' . empty(constant($const));
Oder auch

Code: Alles auswählen

$const = 'SID';
echo 'ASDF' . (empty(constant($const))? 1:0) . 'ASDF';
Denn nur echo 'ASDF' . empty($const) gibt bei mir irgendwie keine Ausgabe.
ohne das constant() funktioniert es jeweils einwandfrei.
Ich benutze jetzt einfach dieses if Konstrukt:

Code: Alles auswählen

if(defined('SID'))
	{
		$sid = SID;
		if($append_sid  && !empty($sid) && SID != 'SID')
		{
Die letzte Frage (SID != 'SID') ist überflüssig (sollte ursprünglich den Fall undefiniert abfangen, fand ich dann aber unsauber) so das auch das hier funktionieren sollte:

Code: Alles auswählen

if(defined('SID') && $append_sid && SID != '')
Ach so: Nur als Hinweis hintendran: empty nimmt nur Variablen, auch keine Funktionsergebnisse, das ist in der Referenz extra als Beispiel angegeben.

Verfasst: 07.01.2007 22:02
von cYbercOsmOnauT
Eines noch zu dieser Fehlermeldung.

Normalerweise taucht sie auf, wenn man Methoden (aus Klassen) direkt ansprechen möchte und dabei die Syntax nicht beachtet.

Beispiel:

Code: Alles auswählen

$template::pparse('body');
erzeugt den Fehler. Weil man bei solch einem Aufruf kein $ an den Anfang setzen darf. Es müsste bei meinem Beispiel so lauten:

Code: Alles auswählen

template::pparse('body');
Tekin