Heim > Backend-Entwicklung > PHP-Tutorial > 这是一种什么情况!该怎么处理

这是一种什么情况!该怎么处理

WBOY
Freigeben: 2016-06-13 13:00:23
Original
848 Leute haben es durchsucht

这是一种什么情况!!!
比如说:

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


显示出:

string(7) "bcdef";

请问一下,为什么这个字符串还是7个长度,有没有什么办法,让他变成5个的长度,



------解决方案--------------------

$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);
Nach dem Login kopieren

------解决方案--------------------
解决方法楼上各位都说了,但为了避免你重蹈覆辙,说说理论的事――

程序看上去是“合理”的,但实际上是错误的,关键在于php核心存储变量的方式

php对于一个字符串变量赋值后是记录了长度的,要改变这个长度需要重新赋值
$str[x]='' 这种形式并不能对字符串变量重新赋值,因为''属于空字节,只能用于空字符串
替换一个非空字节则是可行的


具体请参考  深入理解php内核

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage