6

私のコード:

$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はすべての入力、タブ、スペースキーの値で機能すると思います..私の意見に間違いはありますか?

4

1 に答える 1

1

おもう

if(empty($disabled[0])) die('should be here');

PHP を使用して変数が空かどうかを確認するより良い方法です。

""または" "JavaScript 用です。

于 2013-05-09T04:02:55.067 に答える