kostenloser Webspace werbefrei: lima-city


String als If condition

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    a************n

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. x*****k

    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 :cool:
  4. Autor dieses Themas

    a************n

    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
  5. "" gibt false zurück, jeder andere true. Also: Nein, so geht es nicht.
  6. t*****b

    Probier mal:

    $ifc = "3 > 5";
    if(eval($ifc)) {
     ...
    }
  7. trueweb schrieb:
    Probier mal:

    $ifc = "3 > 5";
    if(eval($ifc)) {
     ...
    }


    Er hat doch gesagt, ohne auf eval() zurück zu greifen.
  8. t*****b

    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.
  9. Autor dieses Themas

    a************n

    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
  10. x*****k

    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?
  11. t*****b

    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);
    
    ?>
  12. Autor dieses Themas

    a************n

    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
  13. 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.
  14. t*****b

    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.
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!