为什么php里面的字符串可以通过下标改变值如题,以前一直没注
php吧
全部回复
仅看楼主
level 3
aa4980459
楼主
为什么php里面的字符串可以通过下标改变值
如题,以前一直没注意,因为基本上接触过的语言(c js swift等)都不能直接修改字符串
比如$str = "123"; $str[0] = "3";这时$str就成了323了,这种方法基本上在其它编程语言都不行,因为字符串是一个常量
当时学到字符串操作方法里都是返回新的结果而不是操作字符串本身(除了大小写转换),我还以为php里面的字符串也是常量。有大佬知道吗
2020年01月09日 09点01分
1
level 16
SeaDrip_Poplar
注明const的才是常量,而且C里也可以用下标修改,你基础该补补了
2020年01月09日 09点01分
2
aa4980459
你说的是字符数组吧,那本质上是数组,后来修改标准char *str的声明方式必须加const,反正当初学习视频上就是这样说的,后来接触js后发现也不能这样修改,我就认为,一个定义好的了的字符串就是一个常量
2020年01月09日 14点01分
level 9
php😈
楼上说的对,c是可以修改字符串的
2020年01月09日 10点01分
3
level 6
pr774549
说一下几种语言的情况
c语言中字符数组和字符串是有区别的,就是看最后有没有空字符,如果是用char*方式定义的是不能用下标修改的,其他的类似数组形式是可以修改的。
c++用string定义的字符串是可以用下标修改的,当然如果用const char*定义的是不能修改的,
java是不能这种方式修改字符串的,字符串和数组不是一个类型,也不能隐式转换,
python里面对字符串相对宽松,不仅可以用下标方式,下标里面还能直接使用范围截取,
php里面定义的字符串可以当成数组来处理
2020年01月15日 00点01分
5
aa4980459
@pr774549
也是,我发现不学到一定程度是不能抠细节的,就像以前最开始学js的object,明明和函数一毛一样,为什么构造函数能用this,函数不能用,直到有一天学到的bom,突然就明白了,其实都能用this, 一般函数里面的this都是window,构造函数里面的
2020年01月16日 04点01分
aa4980459
原来是这样,哎,现在的一些所谓的入门书,基本上都是一笔带过,为什么这样却只字都没提,就像当初学js的原型和下划线原型,书上只轻描淡写说了下 下划线原型是实例的,原型是构造函数的,害的我一天都在找资料
2020年01月15日 15点01分
pr774549
@aa4980459
语言虽然相通,但各有各的特点,要全面的学习只有官方文档和手册,但是对于初学者来说又很难真正看懂,大多会选择入门的视频和书籍,虽然可以学习到一些经验,但不够系统,会遗漏一些内容,所以只有结合两者,一些小细节可以暂时跳过,以后接触多了自然懂了
2020年01月16日 01点01分
level 12
Bubblºe
2020年01月15日 16点01分
6
Bubblºe
2020年01月15日 16点01分
Bubblºe
2020年01月15日 16点01分
Bubblºe
2020年01月15日 16点01分
Bubblºe
2020年01月15日 16点01分
level 5
定是假的将离☜
楼上正解
2020年01月23日 02点01分
8
1