なんと!何をするか

WBOY
リリース: 2016-06-13 13:00:23
オリジナル
839 人が閲覧しました

なんと! ! !
例:

$str="abcadef";
$strone=$str[0];
for($i=0;$i if($strone==$str[$i]){
$str[$i]="";
}
}
var_dump($str);


表示中:

文字列(7) "bcdef";

なぜこの文字列の長さが 7 のままなのか聞いてもいいですか?
にする方法はありますか?


-----解決策---------

$str="abcadef";<br />
$strone=$str[0];<br />
$r = '';<br />
for($i=0;$i<strlen($str);$i++){<br />
  if($strone != $str[$i]){<br />
    $r .= $str[$i];<br />
  }<br />
}<br />
$str = $r;<br />
var_dump($str);
ログイン後にコピー

------解決策------------------
解決策は上記の全員が言及していますが、あなたがまた同じ間違いです、理論について話してください——

このプログラムは「合理的」に見えますが、実際には間違っています。鍵は、PHP コアが変数を格納する方法にあります

PHP は、文字列変数に値を割り当てた後に長さを記録します。長さを変更するには、値
を再割り当てする必要があります。 $str[x]='' '' は null バイトであり、空の文字列にのみ使用できるため、この形式では文字列変数を再割り当てできません
null 以外のバイトの置換が可能です


詳細については、PHPカーネルを深く理解する

を参照してください。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート