2016-05-09 3 views
0

PHPトリム関数で奇妙な問題が発生しました。PHPトリム関数最後の文字を削除する

<?php 
$str = "New Multan Nagar"; 
$trimmedStr = trim($str, ' \t\n\r\0\x0B'); 
var_dump($trimmedStr);// output => string(15) "New Multan Naga" 

$str = "New Multan Nagar"; 
$trimmedStr = trim($str, " \t\n\r\0\x0B"); 
var_dump($trimmedStr); // output => string(16) "New Multan Nagar" 
?> 

2番目のパラメータの値はトリム機能で使用されるデフォルト値であり、唯一の違いは、1つの単一引用符や他の内部二重引用符の内側にあるということです。 誰もこの動作を説明できますか?

+0

文字列を一重引用符で囲む場合、二重引用符[here](http://www.php.net/manual/en/language.types.string.php)を参照してください。あなたがマニュアルを読んで違いを理解すれば、これは全く変わっていません。 PHPのDocsは違いでかなり明確です –

+0

@ mark-baker助けてくれてありがとう。私は一重引用符と二重引用符の違いを知っていましたが、この問題を遭遇したとき、何とか私は変数置換について考えていて、エスケープ文字を完全に無視していました。 –

答えて

0

シングルクォートを使用すると、phpはスラッシュ(/)文字を認識しません。二重引用符で囲まれている場合にのみ、特殊文字とみなされます。

あなたの場合、一重引用符で囲まれたバージョンはすべてtnrx0B文字を削除しています。

0

違いは、単一引用符と二重引用符は、Manual

で単一引用符を参照してくださいです:それ出力を正確にいただきました内部。

二重引用:出力前に解釈されます。

関連する問題