对这个问题有兴趣或者有疑惑的同学一般都是已经学了JAVA并尝试将JAVA程序转译为PHP时可能会有这样的情况

先说解决方案,在PHP中,请直接使用字符串即可解决,如果需要对其中某一个下标操作则可以直接对字符串做数组操作(PHP的字符串本质上是一个带有长度的char数组)

因此直接使用字符串即可!

原理

JAVA中的字符串一般是固定的,如果修改了里面的内容,其实质上是新建了一个新的字符串,并将原来的字符串所在内存地址与对应变量间的关系去掉了而已(即变量对应内存地址存储的指针修改成新字符串内存的地址)

所以原来的内容依旧在内存中(等待系统垃圾回收),所以JAVA里面才会有可变字符串以及string builder等语法操作.但相关操作实质上是有些不太方便的,尤其是需要控制部分值或者获取里面的一部分,或者一个一个的获取里面的字符的时候就会有各种各样的不方便.

为了解决这个问题,引入了getByte方法,该方法可以获取字符串的单个字符的数组(char类型),所以如果我们直接打印出来对应的内容可以观察到存储的实际是数字(0-127等),毕竟是char类型的不是么?

PHP里面就有不一样的地方了,PHP默认是弱类型的,可以自动更变需要的数据类型,而且其底层C语言实现也决定了它带有特有的性质.

PHP的字符串本质就是数组,但是显示和赋值的时候直接将对应的内容类似于可变数组直接进行了赋值(不超最大设置大小的情况下),就因为其本质是数组而且是可以变更长度的数组,所以其可以随意的添加删除里面的构成组件,操作方式多变等

最后修改日期:2021年10月7日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。