PHP 請教 用變數 當 IF條件式

比如說


$condition = \"1==2\"
if ($condition) {
echo \"OK\";
}esle{
echo \"NO!\";
}


目前這樣的方式是行不通的,想請問有沒有別的方式可以完成這個需求??

評論

  • 首先…你放一個語法錯誤的程式碼怎麼會想說他行不行得通?
  • 看不太明白為什麼是用
    $condition = "1==2"
    你要在$condition裡放甚麼?
  • 比如說我要判斷

    if ( 1==2 ) echo ok

    上面這段程式肯定不會出現ok

    但是如果我今天把 1==2 這樣的條件存成變數 就不能 Work

    想問問有沒有甚麼方式可以處理這樣的需求

  • $condition = 1;
    if ($condition==2)
    echo "OK";
    else
    echo "NO!";

    這樣是你要的嗎?

  • 沒人發現他打「esle」嗎?
    我估計原po沒有把display_errors打開所以根本看不到error
  • 有發現阿,所以我改成正確的
  • 說:

    $condition = 1;
    if ($condition==2)
    echo "OK";
    else
    echo "NO!";

    這樣是你要的嗎?

    不是

    是我想把 1==2 這個條件式 存成 變數 有可能嗎??
  • edited 四月 2016
    那你把原本的
    $condition = "1==2"
    改成
    $condition = "1==2";
    這樣看看是不是你要的
  • 好吧 我不是糾結在 文字打錯 跟 ; 的問題

    $condition = '1==2';
    if ($condition){
    echo "yes";
    }else{
    echo "no";
    }

    答案會是 yes
    我想要的是 no

  • $condition = '1==2';
    if (!$condition){
    echo "yes";
    }else{
    echo "no";
    }
    答案會是 no

  • $condition = (1 == 2)

    以上你們二位所寫都只是在存入字串罷了……
  • 很明顯的,發問的對資料型態沒有理解。
    再者,對邏輯判斷似乎也沒有學好。
    但是最重要的:發問沒有具體說明目的。
    這最重要的一點不管到那個論壇都還是一樣的情況。
  • 想要字串做程式化判斷,只有使用eval這個函數來處理了。但一般來說並不建議使用這個函數的。
    很容易被注入的。

    一般來說目前開發已經不會在有出現需要程式化字串的東西了。因為危險性很高
  • @yoching 說實話,eval我是連提都不敢提甚至根本不希望他們去使用甚至「用過」他……
  • 說:

    @yoching 說實話,eval我是連提都不敢提甚至根本不希望他們去使用甚至「用過」他……

    請問大大,可以告訴我大大不敢提的顧慮嗎?
  • @v60i 如果你能保證一輩子都不碰eval我再告訴你為什麼。
  • 說:

    @v60i 如果你能保證一輩子都不碰eval我再告訴你為什麼。

    大大別賣關子了...請告訴我原因 @@"
  • 想問原因的話……我先問你好了。
    eval是做什麼用的。
  • 我想我上面有說很清楚了吧。eval是將字串化成程式碼的應用。
    所以~~~~~如果你今天是eval一個常數字串,那就不會有事。
    但我想沒人會這樣做,與其常數化一個程式碼。那我倒不如做一個function或是直接寫不就行了。

    所以一般來說~~~eval大多數是用來處理變數式的字串。
    而這個「變數」就是一種危險性了。
    假設你的變數來源是有從post、get中取得。

    那是否就是請某方外來人員來幫你寫程式了呢??
    去思考這個問題,再來說危不危險吧。(我是認為很危險,我可不想不明人士來幫我寫程式)
Sign In or Register to comment.