2014-03-01 53 views
0

我有一個包含逗號分隔字符串的變量。這是通過使用implode()函數從數組元素動態生成的。所以有時它不包含任何內容,有時它包含用逗號分隔的1/2/3/4個字符串。我想檢查在這個逗號分隔的字符串中是否存在stirng其他字符串,如果它存在,那麼執行裏面寫入的命令if。但是我面臨的一個問題是,它從來沒有檢測到字符串"Other"內逗號分隔值,雖然是目前的山雀。任何人都可以在這方面幫助我嗎? 供您參考下面是我的代碼:以下情況下strpos實現有什麼問題嗎?

$form_data['que_issue'] = implode(",", $request['que_issue']); 

if(strpos($form_data['que_issue'],"Other")) { 
    echo "In If"; 
    die; 
    if(!$this->mValidator->validate($form_data['que_issue_comment'], "required", "true")) 
     $this->mValidator->push_error($errors_msgs['que_issue_comment_blank'], 'que_issue_comment'); 
    elseif(!$this->mValidator->validate($form_data['que_issue_comment'], 'maxlength', '100')) 
     this->mValidator->push_error($errors_msgs['que_issue_comment_length_invalid'], 'que_issue_comment'); 
} else 
    echo "In a else"; 
die;//Its always going in else part only 

在此先感謝。

+1

如果'Other'出現在開頭的字符串,'strpos'回報'0'和你的病情失敗。你必須增加與'false'的比較:'strpos($ form_data ['que_issue'],「Other」!== false' – hindmost

回答

1

strpos將返回0如果字符串匹配字符串的開頭。但0被PHP解釋爲false。

總是看看文檔,看看什麼是特定的返回類型/值,當方法「失敗」,並與之比較。在這種情況下

if(strpos($form_data['que_issue'],"Other") !== false) 
1

你應該嘗試這樣

if (strpos($form_data['que_issue'],'Other') !== false) { 
相關問題