php基础字符串与数组知识点讲解
作者:diCommon 发布时间:2023-05-25 08:28:14
字符串
打印
打印函数
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 '<a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >$title</a>'. '<br>'; // <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >$title</a>
echo "<a href='#'>$title</a>"; // <a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" >文章标题</a>
上面的两条代码,第二条完整的打印出我想要的内容了
所以,双引号是可以放变量的,那假如有多行的字符串时,怎么办呢
字符串–多行引号
如果一个字符串中,有多行的话,就可以使用nowdoc
或heredoc
$title = '三字经';
$str = <<< doc
<h4>$title</h4>
人之初,性本善。性相近,习相远。
苟不教,性乃迁。教之道,贵以专。
昔孟母,择邻处。子不学,断机杼。
窦燕山,有义方。教五子,名俱扬。
doc;
echo nl2br($str);
// <h4>三字经</h4><br />
// 人之初,性本善。性相近,习相远。<br />
// 苟不教,性乃迁。教之道,贵以专。<br />
// 昔孟母,择邻处。子不学,断机杼。<br />
// 窦燕山,有义方。教五子,名俱扬。
上面的代码已正常打印出来
在这里说明一下,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 "<pre>$str</pre>";
// 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('<pre>%s</pre>',$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, 工程师, 中国
来源:https://blog.csdn.net/u010613970/article/details/128050688


猜你喜欢
- 【名称】Abs【类别】数学函数【原形】Abs(number)【参数】必选的。Number参数是一个任何有效的数值型表达式【返回值】同numb
- 继续Mootools常用方法扩展,依然还是String类的扩展。方法:unescapseHTML说明:这个上次忘了,和escapseHTML
- Java Java 是由 Sun 公司开发而成的一种编程语言,利用 Jave 写成的小程序叫做 Java
- 内码问题.用这段代码的吧,我已经改得很精简了.使用XMLHTTP抓取地址并进次内容处理Function GetBody(Url) Dim o
- 这里使用FSO对象来删除指定文件夹 代码和说明如下:<% set fs=createobject(&qu
- 在添加新记录时,有时候我们需要将部分动态内容自动添加到指定的文本域,例如上传一个文件后,将文件名自动添加到一个独立的记录框内,以
- 阅读上一篇:打造设计你自己的字体 Ⅱ永远都在寻觅字体设计的灵感。夏天过后,我买了一套便宜的书法钢笔,说服自己,它会让我的鸡爬字产生脱胎换骨的
- 比如有一个需求,通过sql语句,返回-5至5的随机整数.如果这一个放在PHP中,则非常简单直接用print rand(-5,5);?>
- 获取指定日期月份的第一天,你可以使用DATEADD函数,减去指定日期的月份过去了的天数,即可。 代码如下:CREATE FUNC
- 下面就来介绍下SQL Server 2008中使用的端口有哪些:首先,最常用最常见的就是1433端口。这个是数据库引擎的端口,如果我们要远程
- 今天看YUI的视频教程,YUI的工程师介绍的一款在线的图片压缩工具,也许你用过,也许没有,不过我这里强烈推荐大家用一下,我用smush.it
- 请问论坛的树状记录表是怎么展开的?如何做?论坛的这种展开技术一般采用两种方法实现,一种是采用递归的方法,优点是逻辑简单,编程简单,缺点是速度
- 最近在着手支付宝个人版改版的项目,正好在一些国内知名的SNS网站上分别注册了帐户进行体验。显然一点,国内的SNS都带有Facebook的影子
- 译文原文:http://blog.benhuoer.com/2009/04/10-simple-and-impressive-design-
- 规律:半角空格的 charCode 为 32, 全角空格为 12288. 其他半角字符 ( 33 – 126 ) 与全角 ( 65281 –
- 它在Lynx里也会运行得很好:<%@ Language=VBScript %><HTML><
- 1、将css与javascript全部用下边的方法分离到外部文件中去。<link rel="stylesheet"
- 摘要:Oracle和微软都是数据库方面的大厂商,采用两家的产品的企业也不少。今天这篇文章为大家对比Oracle和SQLServer的镜像。标
- asp之家注:有时候我们想让程序运行变慢下来,asp中该怎么做呢?原理很简单就是在运行程序前运行一段无关紧要的程序就可以了,要实现加长程序的
- 最常见的XML数据类型有:Element, Attribute,Comment, Text. &nbs