私のコード:
$disabled = $this->access->get_access('disable_header');
$emptyString = '';
var_dump($emptyString);
var_dump($disabled[0]);
if($disabled[0] == '') die('should be here');
if($disabled[0] == ' ') die('should be here');
die('stop');
結果は次のとおりです。
string(0) "" string(1) "" stop
すべての条件が失敗し、理由がわかりません..
しかし、$ emptyString条件を作成した場合:
if($emptyString == '') die('should be here');
それは私に結果を与えます:
should be here
$ dislabled[0]と$emptyStringの両方が同じ空の文字列を持っているが、長さが異なる場合、$ emptyStringの長さを1にすると、次のようになります。
$disabled = $this->access->get_access('disable_header');
$emptyString = ' ';
var_dump($emptyString);
var_dump($disabled[0]);
if($disabled[0] == '') die('should be here');
if($disabled[0] == ' ') die('should be here');
die('stop');
なる :
string(1) " " string(1) "" stop
$disable[0]の比較に失敗しました
私が逃したものは?
====解決方法===
最初に試してみます
mb_detect_encoding($disabled[0]);
その後、結果を教えてください
ASCII
それから私は試してみます:
var_dump(hexdec($disabled[0]))
次に結果を教えてください:
int(9)
私はASCIIテーブルに行き、9=TABキー
それから今私は条件を作ります:
if(strcmp($disabled[0],'')) die('should be here');
tadaaa ..それは示しています:
should be here
strcmpはすべての入力、タブ、スペースキーの値で機能すると思います..私の意見に間違いはありますか?