[OK]T_PAAMAYIM_NEKUDOTAYIM Fehlermeldung?

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

[OK]T_PAAMAYIM_NEKUDOTAYIM Fehlermeldung?

Beitrag von gn#36 »

"Unexpected ')' expecting T_PAAMAYIM_NEKUDOTAYIM in ... on line ..."
ist jemand schon mal über so eine Fehlermeldung gestolpert?

ich war jedenfalls sehr irritiert, als offenbar die Konstruktion if(!empty(SID)) genau diesen Fehler hervorrief. Macht man es dagegen so:

Code: Alles auswählen

$sid = SID;
if(!empty($sid))
funktioniert es wie es soll.
Google sagt zu diesem Fehler z.B. das hier:
http://manuals.phpforum.de/php/language ... otayim.php

=> gemeint ist ::, die Frage ist nur: Was hat das mit meinem Code zu tun?
Ist SID hinterher vielleicht doch mehr als nur eine Konstante?
Zuletzt geändert von gn#36 am 07.01.2007 20:51, insgesamt 1-mal geändert.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
FCM
Mitglied
Beiträge: 1863
Registriert: 03.05.2006 14:47
Kontaktdaten:

Beitrag von FCM »

Ist das oben die ganze Fehlermeldung? Eher nicht, da wird ja keine Zeile angegeben und so.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Natürlich nicht, das war nur der wesentliche Inhalt. Die gesamte Fehlermeldung wäre:
Parse error: syntax error, unexpected ')', expecting T_PAAMAYIM_NEKUDOTAYIM in .../function.php on line 920
Der Fehler ist auch leicht zu beheben wie oben beschrieben. Es wundert mich nur, dass er überhaupt auftritt, denn ich dachte dass Konstanten im Prinzip Platzhalter sind die man auch durch ihre Definition ersetzen könnte (es funktioniert auch nicht mit einer anderen Konstanten). Wenn ich aber den String für den die Konstante steht einsetze in die Funktion geht's wunderbar, genauso wenn ich den Inhalt der Konstanten in eine Variable schreibe und die dann übergebe. Aber eben nicht direkt mit der Konstanten:

Code: Alles auswählen

if($append_sid  && !empty(SID))
dann gibt's - egal welche Konstante ich jetzt nehme - den oben beschriebenen Error.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
andreasOymann
Ehemaliges Teammitglied
Beiträge: 2392
Registriert: 10.06.2003 16:29
Wohnort: Hamminkeln
Kontaktdaten:

Beitrag von andreasOymann »

sei nicht so geizig und poste bitte mal die 5 Zeilen vor und nach der Zeile 920 mit... :wink:

desweiteren verwundert mich die Meldung sowie die gepostete Zeile etwas: eine function.php gibt es im phpBB nicht, und der Code taucht in der originalen functions.php nicht auf...

A
Kein Support per PN / Mail / ICQ / MSN ! Dafür gibt´s dieses Forum...
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Meinetwegen:
Derzeit benutze ich das Skript (testweise) so:

Code: Alles auswählen

//SESSION ID
	$sid = SID;
	if($append_sid  && !empty($sid))
	{
		if(strpos($url,'?'))
		{
			if(strpos($url,'?') != strlen($url))
			{
				//& dazu
				$url .= '&'; 
			}
			
		}
		else
		{
			$url .= '?';
		}
		$url .= SID;
	}
Das $sid = SID;
sollte aber meiner Meinung nach unnötig sein und durch den direkten Einsatz der Konstanten ersetzbar sein. Ist es aber nicht.

Nur so als Hintergrund: Das ganze wird von mir verwendet um Links mit der Session Id zu versehen falls nötig. Da die Funktion u.a. noch andere Parameter anhängt habe ich SID versucht zu behandeln wie alle anderen Parameter auch: Wenn noch keine Parameter angehängt waren, dann ? dran, wenn schon welche da sind dann & dazu, das ganze wäre aber sinnlos wenn in SID nix drin steht, daher die Abfrage if(empty(SID)) (oder jetzt auch nicht mehr).

EDIT: Das hat mit phpbb auch nichts zu tun, daher nicht über die Dateinamen wundern...

Mir ging es hauptsächlich darum zu erfahren, warum SID (und generell Konstanten) nicht mit empty() zusammen funktionieren. Schließlich kann man auch eine Konstante als Repräsentation einer leeren Zeichenkette definieren.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Und noch zum Hintergrund der Fehlermeldung: http://www.pri-dev.net/de/blog_show/id1 ... ehler.html
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Hm ich habe mich wohl vertan was die Funktionsweise von empty angeht:
de.php.net hat geschrieben: bool empty ( mixed var )

Prüft, ob eine Variable einen Wert enthält
Parameter Liste

var

Die zu prüfende Variable.

Anmerkung: empty() überprüft nur Variablen, alles andere führt zu einem Parse-Error. Anders gesagt wird folgendes nicht funktionieren: empty(trim($name)).

empty() ist das Gegenteil von (boolean) var, außer dass keine Warnung erzeugt wird, wenn die Variable nicht gesetzt ist.
Trotzdem eine sehr witzige Fehlermeldung...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Was du suchst, ist [php:defined]. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Nein, denn das wäre das Gegenstück von isset(). Ich wollte auf Inhalt prüfen, nicht auf Definition (defined() würde auch true liefern wenn die Konstante mit einem leeren String definiert wurde, oder mit false, genau das wollte ich mit empty ausschließen.) Trotzdem danke :grin:
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Du könntest es mal so versuchen:

Code: Alles auswählen

function empty_const($const)
{
  return empty(constant($const));
}
Aufruf:

Code: Alles auswählen

if (empty_const('SID'))
{

}
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“