美文网首页
php字符串与数组的特殊情况

php字符串与数组的特殊情况

作者: fadeqi | 来源:发表于2019-03-14 10:15 被阅读0次

来看一个有趣的实验


实验1

  <?php
$arr = array('a','b','c');
var_dump(isset($arr[1][0]));
var_dump($arr[0][0]);
var_dump($arr[1][0]);

#输出
bool(true)
string(1) "a"
string(1) "b"

没错,$arr命名是一维数组但上面代码却返回true

原因:

还记得php中的字符串可以用数组的形式进行读取操作的吗?
实验2

$var = 'qwertyui';
var_dump($var['1']);
var_dump($var[1]);
var_dump($var[2]);
#输出
string(1) "w"
string(1) "w"
string(1) "e"

但值得注意的是,php中字符串的数据结构不是数组,而是提供了一个方便的操作而已
实验3

<?php
$var = 'qwertyui';
var_dump($var['1']);
var_dump($var[1]);
var_dump($var[2]);
$var[8] = '234';
var_dump($var); 
$var[12] = '987';
var_dump($var);

#输出
string(1) "w"
string(1) "w"
string(1) "e"
string(9) "qwertyui2"
string(13) "qwertyui2   9" #2和9之间有三个空格

上面例子中字符串每个字符可以看做是数组的一个元素,数组索引值从0开始;执行到$var[12] = '987' 这段代码时,由于现在的 $var 变成了'qwertyui2',长度为9,及,很明显长度不够12+1=13(索引值从0开始);所以在执行时会将$var[9],$var[10],$var[11]填充为空格,$var[12]时会把字符串'987'的第一个字符设置为值,因此输出为"qwertyui2 9" (2和9之间有三个空格)。

上面的实验1中

$arr[0][0]在被php解析的过程是这样的:

$arr[0] 指向的是字符串 'a' 然后对字符串进行操作 相当于 $str='a'; $str[0]

相关文章

  • php字符串与数组的特殊情况

    来看一个有趣的实验 实验1 没错,$arr命名是一维数组但上面代码却返回true 原因: 还记得php中的字符串可...

  • PHP全栈学习笔记23

    php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与sess...

  • PHP全栈学习笔记23

    php,基础,流程控制,函数,字符串,数组,web交互,mysql数据库,PHP数据库编程,cookie与sess...

  • 一. PHP入门篇和PHP进阶篇

    PHP基础语法 PHP数组 PHP函数 PHP之类和对象 PHP字符串 PHP之正则表达式 PHP之cookie ...

  • PHP基础 —— 数组

    数组 PHP中不需要指定数组大小 索引数组 索引为整数的数组 关联数组 索引值为字符串的数组,使用字符串作为索引 ...

  • PHP implode() explode() 函数

    (一)、PHP implode() 函数 把数组元素组合为字符串:

  • 搜藏经典

    PHP 16个魔术方法 PHP 数组函数 PHP 字符串函数 PHP 超全局变量 PHP 面向对象的理解以及三大特...

  • 八月二十五

    PHP数组之关联数组初始化 关联数组是指数组的键是字符串的数组。 $fruit = array( 'apple'=...

  • php二维数组转化为字符串

    php二维数组转化为字符串 //二维数组转化为字符串,中间用,隔开 functionarr_to_str($arr...

  • php面试

    (1)引用变量 变量赋值 变量引用 (2)reverse函数重写 PHP中没有字符串与数组的length属性 (3...

网友评论

      本文标题:php字符串与数组的特殊情况

      本文链接:https://www.haomeiwen.com/subject/syctpqtx.html