empty erzeugt fehler mit class variablen ?

MrSpoocy

Grünschnabel
Hi,

irgendwie bekomm ich immer folgenden fehler:

Parse error: parse error, unexpected '(', expecting ')' in /homepages

Der fehler bezieht sich genau auf die if (emtpy abfrage.

PHP:
class xml
{
var $parameter;

	function xml()
	{
	$this->parameter['info'] = True;
	}

	function getInfo()
	{
	$tmp = func_get_args();
		if(isset($this->parameter[$tmp[0]]))
		{
		return $this->parameter[$tmp[0]];
		}
	}
}

$xml = new xml()

if(!empty($xml->getInfo("info")))
{
echo "Test";
}

Meine vorstellung ist, wenn die variable in getInfo("") existiert bekommt man den inhalt zurück. Ist der inhalt aber lehr gibt er True zurück. Exisitert die variable nicht gibt er False zurück. Das ganze is teil eines XML parsers und dort gibt es irgendwie problem bei werten die keinen inhalt haben :(

mfg Spoocy
 
Das liegt daran, dass eine Zeile drüber ein Semikolon fehlt!

Das sollte so aussehen:
PHP:
$xml = new xml();
greetz
daddz
 
ok das ; hab ich vergessen .. habs halt nicht voll rauskopier sondern zusammen gestückelt weil der rest sinlos unwichtiger coder wer :)

also einfach vorher in variable legen und dann die variable prüfen ?
 
Auf welche Eigenschaft möchtest du den Rückgabewert denn genau prüfen? Denn die empty()-Funktion prüft auch die Existenz der Variable.
 
Also folgende möglichkeinten gibt es in dem XML file:

<info>daten</info>
<info></info>
<info />

die 3 möglichkeiten oder info existiert hat nicht.

Und ich möchte halt erst prüfen ob sie existiert das ginge mit isset und danach ob sie einen wert änthält. wobei ja <info/> auch zu existiert zählt ! aber dennoch nicht lehr ist sonder NULL. und <info></info> exisitert endhält aber nichts. das soll unterschieden werden ^^ Hört sich kompleziert an weil ichs so schwer beschreiben kann :)
 
probier mal:
PHP:
if($xml->getInfo("info")!=="") 
{ 
    echo "Test"; 
}

Erklärung:
Mit === können Vergleiche auf Binärbasis realisiert werden. Das hört sich kompliziert an, ist es aber nicht ^^.
Dabei wird nur zusätzlich der Variablentyp geprüft...
Bsp:
PHP:
if("1"===1) {
    //wird nie wahr weil string "1" nicht integer 1 ist
    string "string"
    integer 1
}
in deinem Fall sollte es funktionieren wenn du prüfst ob $xml->getInfo("info") KEIN Leer-string ist

equal/gleich === , not-equal/nicht gleich !== , Leer-string ""
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück