这是一种什么情况!该怎么处理
程序员文章站
2024-01-13 18:44:10
...
这是一种什么情况!!!
比如说:
$str="abcadef";
$strone=$str[0];
for($i=0;$i if($strone==$str[$i]){
$str[$i]="";
}
}
var_dump($str);
显示出:
string(7) "bcdef";
请问一下,为什么这个字符串还是7个长度,有没有什么办法,让他变成5个的长度,
------解决方案--------------------
------解决方案--------------------
解决方法楼上各位都说了,但为了避免你重蹈覆辙,说说理论的事——
程序看上去是“合理”的,但实际上是错误的,关键在于php核心存储变量的方式
php对于一个字符串变量赋值后是记录了长度的,要改变这个长度需要重新赋值
$str[x]='' 这种形式并不能对字符串变量重新赋值,因为''属于空字节,只能用于空字符串
替换一个非空字节则是可行的
具体请参考 深入理解php内核
比如说:
$str="abcadef";
$strone=$str[0];
for($i=0;$i
$str[$i]="";
}
}
var_dump($str);
显示出:
string(7) "bcdef";
请问一下,为什么这个字符串还是7个长度,有没有什么办法,让他变成5个的长度,
------解决方案--------------------
$str="abcadef";
$strone=$str[0];
$r = '';
for($i=0;$iif($strone != $str[$i]){
$r .= $str[$i];
}
}
$str = $r;
var_dump($str);
------解决方案--------------------
解决方法楼上各位都说了,但为了避免你重蹈覆辙,说说理论的事——
程序看上去是“合理”的,但实际上是错误的,关键在于php核心存储变量的方式
php对于一个字符串变量赋值后是记录了长度的,要改变这个长度需要重新赋值
$str[x]='' 这种形式并不能对字符串变量重新赋值,因为''属于空字节,只能用于空字符串
替换一个非空字节则是可行的
具体请参考 深入理解php内核
相关文章
相关视频
上一篇: 在SQL2000查询中使用XDR的例子_PHP教程
下一篇: php中curl使用指南_php实例
推荐阅读
-
$cryptkey = $keya.md5($keya.$keyc);什么意思,该怎么处理
-
ECShop网站的复制与移植 跪求帮助,该怎么处理
-
while($rs=mysql_fetch_array($result)),该怎么处理
-
请教一上这个有关问题该怎么处理
-
彭和平垃圾回收机制,该怎么处理
-
mysql数据库表示时间的字段为什么可以用int类型啊这样与datetime相比有什么好处?该怎么处理
-
ZendStudio 使用svn 不显示版本号,该怎么处理
-
order by pid desc加到这个语句的那个位置?该怎么处理
-
关于多个域名指向同一域名,该怎么处理
-
php sqlite,该怎么处理