chenwenjie 发表于 2019-7-11 17:03

在学习PHP中遇到的疑问, 求知..

今天在学习Php时发现, Php可以对字符串进行增删改查, 然后在学习删除部分的时候发现:
例如一个变量 $userName = "DavidChen";
然后我想删除'D'这个字母[下标0],
于是我就写了$userName{0} = '';
结果报错如下

百度才发现, 似乎Php7版本不能这么删除字符串指定下标的字符了
我切换版本成PHP5.6的就不会报错了, 可以正常删除...
想来问问大佬门, PHP7版本真的不能这么删除了吗? 还是在下操作的方式不当?
当然, 用preg_replace可以实现这么个功能, 可是看着视频里的老师操作没有问题, 我看着难受{:1_936:} 强迫症

yjq小乔 发表于 2019-7-11 17:14

$userName = ''; 才对把

chenwenjie 发表于 2019-7-11 17:15

yjq小乔 发表于 2019-7-11 17:14
$userName = ''; 才对把

都一样, 都可以用

川姜一男 发表于 2019-7-11 17:20

$trimmed = ltrim($userName, "D");??

参考:https://www.php.net/manual/zh/function.ltrim.php

偷喝奶的浣熊 发表于 2019-7-11 17:27

substr不就可以了

chenwenjie 发表于 2019-7-11 17:28

川姜一男 发表于 2019-7-11 17:20
$trimmed = ltrim($userName, "D");??

参考:https://www.php.net/manual/zh/function.ltrim.php

没用呀{:1_937:}
只能删除最右边的或者最左边的
而且不能指定下标
我还想问的是, Php7真的不能$userName = '';这样做了嘛
为什么

mosou 发表于 2019-7-11 17:29

$a = 'asdfgh';
$a='b';
echo $a;
$a{1}='c';
echo $a;
php7 实测 没有任何问题

chenwenjie 发表于 2019-7-11 17:30

mosou 发表于 2019-7-11 17:29
php7 ...

哥{:1_924:}不是这样的
是$a = '';
你这样试试

mosou 发表于 2019-7-11 17:48

chenwenjie 发表于 2019-7-11 17:30
哥不是这样的
是$a = '';
你这样试试

                $a = 'asdfgh';
                $a='b';
                echo $a.'----';
                $a = str_replace($a,'',$a);
                echo $a;

完美解决
不能直接设为空 你用替换就Ok了

Aswind 发表于 2019-7-11 17:56

https://phpedia.net
各个版本的在线编辑器
页: [1] 2
查看完整版本: 在学习PHP中遇到的疑问, 求知..