搜索

查看: 3067|回复: 11

[PHP] php基础字符串与数组知识点讲解

[复制链接]
发表于 2023-5-4 17:04:48 | 显示全部楼层 |阅读模式
Editor 2023-5-4 17:04:48 3067 11 看全部
目录
  • 字符串
  • 打印
  • 字符串–引号
  • 字符串–多行引号
  • 数组-对象
  • 索引数组
  • 关联数组
    字符串
    打印
    打印函数
    echo: 打印值,用于单值
    print_r(): 人类可读方式打印,用于数组
    var_dump():打印结构和类型,一般用于对象

    数据类型一般分为字符串,数值,布尔,数组
    //单值
    $data='我是php';
    echo $data; // 我是php
    $data2 = 123;
    echo $data2; // 123
    $data3 = true;
    echo $data3; // 1
    // $data4打印的为空
    $data4 = false;
    echo $data4; //
    如果使用echo打开布尔类型时,打开true的话,会打印出1,而打开false时,会打印为空
    如果使用var_dump()来打印的话,那么就可以正确的打印出来了
    $data3 = true;
    var_dump($data3); // bool(true)
    $data4 = false;
    var_dump($data4); // bool(false)
    但是如果使用print_r()呢?会打印什么呢?试一下吧
    $data3 = true;
    $data4 = false;
    print_r($data3); // 1
    print_r($data4); //
    使用print_r()同样的,跟echo打印的内容是一个的,true为1,false为空
    echo只能打印单值,不能打印数组对象;
    var_dump()可打印单值,也可打印数组对象;
    $arr1 = ['小明','小李','小刚'];
    var_dump($arr1); // array(3) { [0]=> string(6) "小明" [1]=> string(6) "小李" [2]=> string(6) "小刚" }
    字符串–引号
  • 单引号: 适合无变量,无转义字符
  • 双引号: 适合有变量,有转义字符
    $title = '文章标题';
    echo '$title'. '
    '; // $title
    echo "$title"; // 文章标题
    上面的两条代码,第二条完整的打印出我想要的内容了
    所以,双引号是可以放变量的,那假如有多行的字符串时,怎么办呢

    字符串–多行引号
    如果一个字符串中,有多行的话,就可以使用nowdoc或heredoc
    $title = '三字经';
    $str = $title
    人之初,性本善。性相近,习相远。
    苟不教,性乃迁。教之道,贵以专。
    昔孟母,择邻处。子不学,断机杼。
    窦燕山,有义方。教五子,名俱扬。
    doc;
    echo nl2br($str);
    // 三字经
    // 人之初,性本善。性相近,习相远。
    // 苟不教,性乃迁。教之道,贵以专。
    // 昔孟母,择邻处。子不学,断机杼。
    // 窦燕山,有义方。教五子,名俱扬。
    上面的代码已正常打印出来
    在这里说明一下,doc和结束的doc都可以随便命名的,但是名称必须要一样就可以了,上面的开始doc默认是双引号的,单引号可自行测试

    数组-对象
    数组有分索引数组和关联数组

    索引数组
    下面定义的$data就是索引数组,中括号里面以=>为区分,左边数字为索引,右边为值
    $data = [1=>"小明",2=>"小李",3=>"小张",4=>"小刚"];
    同样的,跟javascript类型,数组中的索引可以不写,那么默认索引将会从0开始
    $data = ['小明',"小李","小张","小刚"];
    那么我们直接输入看下是怎么样的
    $data = [1=>"小明",2=>"小李",3=>"小张",4=>"小刚"];
    print_r($data);
    // Array ( [1] => 小明 [2] => 小李 [3] => 小张 [4] => 小刚 )
    $data = ['小明',"小李","小张","小刚"];
    print_r($data);
    // Array ( [0] => 小明 [1] => 小李 [2] => 小张 [3] => 小刚 )
    可以看出来,输出的东西是一样的,只是索引却不一样,第一条索引从1开始,第二条从0开始
    但是这里我们就会有一个新的需求了,这个数组看起来很费劲,那么我们能不能格式化一下呢
    $data = ['小明',"小李","小张","小刚"];
    $str = print_r($data, true);
    echo "$str";
    // Array
    // (
    //     [0] => 小明
    //     [1] => 小李
    //     [2] => 小张
    //     [3] => 小刚
    // )
    这样就清晰很多了
    当然也有另外的方法,比如使用printf(模板,插值):
    $data = ['小明',"小李","小张","小刚"];
    // 这里要说明一下,print_r($str, bool)第二个变量如果为false,直接输入结果,如果为true,不输出,直接将结果赋值给一个变量
    $str = print_r($data, true);
    // %s: string, %d: integer, %f: float
    printf('%s',$str);
    // Array
    // (
    //     [0] => 小明
    //     [1] => 小李
    //     [2] => 小张
    //     [3] => 小刚
    // )
    输出的内容跟上面是一样的
    索引数组解构
    $data = ['小明',"小李","小张","小刚"];
    list($name1, $name2, $name3, $name4) = $data;
    echo $name1; // 小明
    echo $name4; // 小刚

    关联数组
    下面的数组就是关联数组,打印一下看看
    $data = ['name'=>"小明",'age'=>18,'job'=>"工程师",'address'=>"中国"];
    print_r($data);
    // Array ( [name] => 小明 [age] => 18 [job] => 工程师 [address] => 中国 )
    关联数组=>左边的是键,右边的是值
    关联数组解构
    $data = ['name'=>"小明",'age'=>18,'job'=>"工程师",'address'=>"中国"];
    ['name'=>$name, 'age'=>$age, 'job'=>$job, 'address'=>$address] = $data;
    echo $name; // 小明
    快速解构关联数组
    $data = ['name'=>"小明",'age'=>18,'job'=>"工程师",'address'=>"中国"];
    extract($data);
    printf('%s, %d, %s, %s', $name, $age, $job, $address); // 小明, 18, 工程师, 中国
    到此这篇关于php基础字符串与数组知识点讲解的文章就介绍到这了,更多相关php字符串与数组内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛
  • 回复

    使用道具 举报

    发表于 2023-6-28 21:49:44 | 显示全部楼层
    123456865 2023-6-28 21:49:44 看全部
    这个帖子不回对不起自己!我想我是一天也不能离开知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-29 01:03:06 | 显示全部楼层
    哈哈SE7 2023-6-29 01:03:06 看全部
    楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
    回复

    使用道具 举报

    发表于 2023-6-29 13:38:41 | 显示全部楼层
    123456825 2023-6-29 13:38:41 看全部
    楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
    回复

    使用道具 举报

    发表于 2023-6-29 17:28:22 | 显示全部楼层
    戏做顿 2023-6-29 17:28:22 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    发表于 2023-6-29 20:34:51 | 显示全部楼层
    素色流年783 2023-6-29 20:34:51 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛
    回复

    使用道具 举报

    发表于 2023-6-30 01:38:10 | 显示全部楼层
    麻辣鸡翅 2023-6-30 01:38:10 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    回复

    使用道具 举报

    发表于 2023-6-30 04:03:25 | 显示全部楼层
    123456819 2023-6-30 04:03:25 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    回复

    使用道具 举报

    发表于 2023-7-3 07:40:24 | 显示全部楼层
    伊索谗言 2023-7-3 07:40:24 看全部
    我看不错噢 谢谢楼主!知鸟论坛越来越好!
    回复

    使用道具 举报

    发表于 2023-7-3 14:52:52 | 显示全部楼层
    米老鼠和蓝精鼠v 2023-7-3 14:52:52 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    回复

    使用道具 举报

    • 您可能感兴趣
    点击右侧快捷回复 【请勿灌水】
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| SiteMap| 小黑屋| 知鸟论坛
    联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表