String als If condition
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
aufwand
bedingung
benutzen
code
funktion
gedanke
greifen
helfen
idee
interpreter
markup
probier
string
struktur
teiler
url
versucht code
vorhaben
wissen
-
hey,
ich wollte von euch wissen ob es möglich ist einen String als if condition zu nutzen...
also
<?php $ifc = "3 > 5"; if($ifc)//do ?>
ist soetwas möglich, ohne dabei auf funktionen wie eval zurückgreifen zu müssen. Da ich grade an meiner eigenen kleinen scripting sprache arbeite, damit user hinterher ihre profilseite barabeiten können.
mfg andre -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
So viel ich weiss geht das nicht.
Wäre sehr überrascht falls das möglich wäre.
In deinem Beispiel würd' ich jetzt den String explodieren (mit explode, und als Teiler > oder < oder = angeben [je nachdem, was du willst]) und jeweils das vorne und hinten zu einem Integer umwandeln.
mfg x-bLacK -
x-black schrieb:
In deinem Beispiel würd' ich jetzt den String explodieren (mit explode, und als Teiler > oder < oder = angeben [je nachdem, was du willst]) und jeweils das vorne und hinten zu einem Integer umwandeln.
das würde gehen aber es sollen hinterher auch variablen möglich sein und obendrein nicht nur zahlen...
mfg andre -
"" gibt false zurück, jeder andere true. Also: Nein, so geht es nicht.
-
trueweb schrieb:
Probier mal:
$ifc = "3 > 5"; if(eval($ifc)) { ... }
Er hat doch gesagt, ohne auf eval() zurück zu greifen. -
drafed-map schrieb:
trueweb schrieb:
Probier mal:
$ifc = "3 > 5"; if(eval($ifc)) { ... }
Er hat doch gesagt, ohne auf eval() zurück zu greifen.
Dann wird er wohl oder übel auch seinen eigenen Parser schreiben müssen und kann sein "Script" nicht über PHP laufen lassen. -
trueweb schrieb: Probier mal:
$ifc = "3 > 5"; if(eval($ifc)) { ... }
das gibt folgendes zurück
Parse error: parse error in C:\xampp\htdocs\interpreter\interpreter.php(50) : eval()'d code on line 1
dh. ich habe leider immer noch keine lösung.... ich hoffe ihr könnt mir helfen, da ich wirklich keine ideen mehr habe... ich hab sogar sowas schon versucht:
$ifc = "3<4"; if(call_user_func ('if', $ifc))
was logischer weise nicht ging
mfg andre -
Vielleicht können wir dir besser helfen, wenn du uns dein Vorhaben konkreter beschreibst.
Du brauchst das ja, damit deine User die Profilseite überarbeiten können. Aber was willst du im Endeffekt realisieren? Eine Art captcha?
Warum könnte rechts und links von < / > / = auch Variablen sein (a,b,c,..) und wie viele verschiedene Zeichen gibt es? -
andre-morillon schrieb:
trueweb schrieb: Probier mal:
$ifc = "3 > 5"; if(eval($ifc)) { ... }
das gibt folgendes zurück
Parse error: parse error in C:\xampp\htdocs\interpreter\interpreter.php(50) : eval()'d code on line 1
dh. ich habe leider immer noch keine lösung.... ich hoffe ihr könnt mir helfen, da ich wirklich keine ideen mehr habe... ich hab sogar
<?php $ifc = "3 < 5"; $ifc2 = "if (".$ifc.") { echo 'true'; } else { echo 'false'; }"; eval($ifc2); ?>
-
mein vorhaben ist es eine kleine scriptingsprache zu schreiben, damit man schnell, einfach, ohne großen aufwand etwas in meine website einbinden kann was dann ausgeführt wird. daher werden auch variablen benötigt.
ich kann bis jetzt ausgeben variablen initialiesieren, sowie schon fast damit arbeiten...
aber damit das auch wirklich etwas bewirkt benötigt man eine if abfrage, deswegen wollte ich wissen wie ich soetwas hinbekomme...
mein gedanke für die struktur war in etwa so:
IF bedingung THEN ... ELSE ... ENDIF
also ich glaub so in etwa wie pascal & delphi
nur die bedingung ist bei mir num mal ein string...deswegen wollte ich von euch wissen wie man so etwas, eine if abfrage, machen kann.
mfg andre
// edit;
das von trueweb geht, danke
Beitrag zuletzt geändert: 27.12.2009 19:10:43 von andre-morillon -
Das von trueweb würde ich aber nicht benutzen, wenn es um Benutzereingabe geht.
Ich würde von eval() abraten.
Du könntest dir mal evalmath.class.php anschauen.
Du kannst es mit weiterne Funktionen ergänzen. -
jacr schrieb:
Das von trueweb würde ich aber nicht benutzen, wenn es um Benutzereingabe geht.
Ich würde von eval() abraten.
Ich auch, aber er muss einen eigenen Parser schreiben wenn er seine eigene Scriptsprache verwenden möchte. Anders wirds nicht gehn ohne Eval. Das ist ein großes Vorhaben und mit sehr viel Aufwand verbunden, aber anders gehts eben nicht. Es gibt da keine leichte Möglichkeiten. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage