php中单引号与双引号定义字符串的不同
①转义的字符不同
单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身。如果用双引号(“”)括起字符串,PHP懂得更多特殊字符串的转义序列。
代码如下 | 复制代码 |
<?php $str1 = '\',\\,\r\n\t\v\$\"'; echo $str1,'<br />'; $str2 = "\",\\,a\r\n\tb\v\$\'"; echo $str2,'<br />'; ?> |
②对变量的解析不同
单引号字符串中出现的变量不会被变量值替代。即PHP不会解析单引号中的变量,而是将变量名原样输出。双引号字符串最重要的一点是其中的变量名会被变量值替代,即可以解析双引号中包含的变量。
代码如下 | 复制代码 |
<?php $age = 20; $str1 = 'I am $age years old'; $str2 = "I am $age years old"; echo $str1,'<br />'; // I am $age years old echo $str2,'<br />'; // I am 20 years old; ?> |
③解析速度不同
单引号不需要考虑变量的解析,速度比双引号快.推荐用单引号.有的时候双引号也比较好用,比如在拼凑sql 语句
反斜杠
代码如下 | 复制代码 |
//使用单引号 echo ' this \n is \r the blog \t of \\ zhoumanhe \\'; //上面使用单引号输出的值是 this \n is \r the blog \t of \ zhoumanhe \ echo ' '; echo " "; //使用双引号 echo "this \n is \r the blog \t of \\ zhoumanhe \\"; //上面使用双引号输出的值是 this is the blog of \ zhoumanhe \ |
使用sql
代码如下 | 复制代码 |
假设查询条件中使用的是常量,例如: select * from abc_table where user_name=’abc’; SQL语句可以写成: SQLstr = “select * from abc_table where user _name= ‘abc’” ; 假设查询条件中使用的是变量,例如: $user_name = $_REQUEST['user_name']; //字符串变量 或 $user=array (”name”=> $_REQUEST['user_name‘,"age"=>$_REQUEST['age'];//数组变量 SQL语句就可以写成: SQLstr = “select * from abc_table where user_name = ‘ ” . $user_name . ” ‘ “; SQLstr = “select * from abc_table where user_name = ‘ ” . $user["name"] . ” ‘ “; 对比一下: SQLstr=”select * from abc_table where user_name = ‘ abc ‘ ” ; SQLstr=”select * from abc_table where user_name =’ ” . $user _name . ” ‘ “; SQLstr=”select * from abc_table where user_name =’ ” . $user["name"] . ” ‘ “; SQLstr可以分解为以下3个部分: 1:”select * from table where user_name = ‘ ” //固定SQL语句 2:$user //变量 3:” ‘ ” |
附:大家也看到了 echo '<br/>'; html中的标签在单引号和双引号中都有效。
总结一下PHP引号使用原则
1.字符串的值用引号
2.PHP中尽量用单引号,HTML代码全部用双引号
3.在包含变量的时候,用双引号可以简化操作
4.复杂的情况下用大括号包起来
PHP引号还有一个用处就是,有的时候需要用php生成文本文件,换行符n需要用双引号才能好使,单引号则会直接把n当成字符输出。
使用总结:在字符串里面不需要加入 变量 或者 单引号(')和反斜杠(\) 时,尽量用单引号引字符串,因为省去了双引号检查处理转义和解析变量上面的时间。能用单引号尽量用单引号。
下文整理了在开发中php数组的一些常用例子,这些数组例子对于新手是非常的有用哦,大家不防进入参考。一、什么是数组
数组就是一组数据的集合,把一系列数据组织起来,形成一个可操作的整体。数组的每个实体都包含两项:键和值。
二、声明数据
在PHP中声明数组的方式主要有两种:
一是应用array()函数声明数组,
一是直接为数组元素赋值。飞飞Asp!技术乐园
<1>array()函数声明的数组的方式array([mixed...]) 参数mixed的语法为key=>value
如,
代码如下 | 复制代码 |
< ?php |
<2>直接为数组元素赋值。
如果在创建数组时不知所创建数组的大小,或在实际编写程序时数组的大小可能发生变化,采用这种数组创建的方法较好。
如,
代码如下 | 复制代码 |
< ?php |
三、数组的类型
PHP支持两种数组:索引数组(indexed array)和联合数组(associative array),前者使用数字作为键,后者使用字符串作为键。
四、输出数组
在PHP中对数组元素输出,可以通过echo和print语句来实现,但这只能对数组中某一元素进行输出;要将数组结构输出则要使用print_r()函数,其语法:print_r(mixed expression),参数expression为普通的整形、字符型或实型变量则输出该变量本身,如果该参数为数组,则按一定键值和元素的顺序显示出该数组中的所有元素。
五、数组的构造
一维数组:
当一个数组的元素是变量时,则称其为一维数组。飞飞As.p技术乐园
声明一位数组: 类型说明符 数组名[常量表达式];
二维数组:
当一个数组的元素是一个一位数组时,则称之为二维数组。
如,
代码如下 | 复制代码 |
< ?php |
六、遍历数组
遍历数组中的所有元素是常用的一种操作,在遍历的过程中可以完成查询或其他功能。在PHP中遍历数组的方法有多种,下面介绍最常用的两种方法。
<1>使用foreach结构遍历数组;
<2>使用list()函数遍历数组,list()函数仅能用于数字索引的数组,且数字索引从0开始。
例:综合使用list()和each()认证用户登录:
代码如下 | 复制代码 |
< ?php |
七、统计数组元素个数
在PHP中,使用count()函数对数组中的元素个数进行统计,语法为:int coun(mixed array[,int mode]),其中参数array为必要参数,mode为可选参数,若选中COUNT——RECURSIVE(或1),本函数将递归地对数组数组。如,
代码如下 | 复制代码 |
< ?php |
八、数组排序
<1>使用sort()和rsort()分别对数组进行升序和降序,如,
代码如下 | 复制代码 |
< ?php $array=array(5,26,37,18,9,42,88,66); $array1=sort($array); for($i=0;$i echo $array[$i]." "; } echo " “; $array1=rsort($array); for($i=0;$i echo $array[$i]." "; } ?> 运行结果: 5 9 18 26 37 42 66 88 88 66 42 37 26 18 9 5 |
<2>使用ksort()和asort()对关联数组排序
如果使用了相关数组,在排序后还要保持关键字和值的排序一致,这是就需要使用ksort()和asort()函
数,如,
代码如下 | 复制代码 |
< ?php $array=array('php'=>1,’jsp’=>2,’asp’=>3); ksort($array); print_r($array); echo “ “; asort($array); print_r($array); ?> 运行结果: Array ( [asp] => 3 [jsp] => 2 [php] => 1 ) Array ( [php] => 1 [jsp] => 2 [asp] => 3 ) |
PHP合并数组我们可以使用array_merge()函数,array_merge()函数返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。其形式为:
array array_merge (array array1 array2…,arrayN)
下面是一个PHP合并数组的例子:
代码如下 | 复制代码 |
<?php |
用PHP追加数组,使用array_merge_recursive(),将两个数组合并在一起,注意,与array_merge()函数是不一样的,array_merge()的两个数组有重复项时会覆盖掉,而array_merge_recursive()则不会。array_merge_recursive()语法:
array array_merge_recursive(array array1,array array2[…,array arrayN])
下面是一个PHP追加数组的例子:
代码如下 | 复制代码 |
<?php |
现在apple 指向一个数组,由两个颜色值组成的索引数组,还有一种比较怪的做法就是合并数组
array_splice()语法格式为:
array array_splice ( array array , int offset[,length[,array replacement]])
例子
代码如下 | 复制代码 |
<?php |
我们还可以使用可选参数replacement来指定取代目标部分的数组。请看下面的例子:
代码如下 | 复制代码 |
<?php |
foreach有两种用法:
一、
foreach(arr_name as $value)
{
statement;
}
解析:arr_name是要遍历的数组名。每次循环,arr_name数组当前元素的值都被赋给$value,而且数组内部下标也要下移一个,也就是说下次循环得到的将是下一个元素
二、
foreach(arr_name as $key => $value)
{
statement;
}
解析:与第一个的不同是,这个除了吧当前元素的值赋给$value外,每次循环当前元素的键值也会被赋给$key , 键值可能是下标或字符串。如row[0]=1中的"0”,row[id]="001"中的"id”.其中0与id都是键值
先来看第一个语句,这个语句比较简单,array_expression指的是一个数组表达式,as $val语句将顺序取得该数组的值并保存到$val变量中,此种方法只能取得数组内的值,而不能取得数组的下标索引值。例如:
代码如下 | 复制代码 |
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); foreach($myArray as $val) { echo $val."<br />"; } 执行结果: val1 val2 val3 |
再来看看第二种格式,第二种格式除了能像第一种格式一样得到数组内元素的值外,还能得到元素的索引值,并保存到$key变量中,如果数组的索引值未经过人工设定,则返回系统默认的设定值。
先看一个简单的一维数组:
代码如下 | 复制代码 |
$myArray=array("1"=>"val1","2"=>"val2","3"=>"val3"); foreach($myArray as $key=>$val) { echo $key."=>".$val."<br />"; } 执行结果: 1=>val1 2=>val2 3=>val3 |
接下来我们再来看一个复杂一点的二维数组遍历,程序如下:
代码如下 | 复制代码 |
$myArray=array( "1"=>array("11"=>"val11","12"=>"val12","13"=>"val13"), "2"=>array("21"=>"val21","22"=>"val22","23"=>"val23"), "3"=>array("31"=>"val31","32"=>"val32","33"=>"val33") ); echo "<ul>"; foreach($myArray as $key=>$val) { echo "<li>".$key."</li>"; //判断$val的值是否是一个数组,如果是,则进入下层遍历 if (is_array($val)) { echo "<ul>"; foreach($val as $key=>$val) { echo "<li>".$key."=>".$val."</li>"; } echo "</ul>"; } } echo "</ul>"; |
执行结果:
<ul> 和 <li>是 标签,作用是显示个实心小圆点和空心小圆点。 由于上面的是一个二维数组,在第一次遍历后所得到的$val值将是一个数组,所以我在遍历中加了一个判断,以便进行二层数组遍历。
再通过一个实例解惑:
代码如下 | 复制代码 |
$a = array("1"=>"语文","2"=>"数学","3"=>"英语"); $b = array("1"=>"95","2"=>"99","3"=>"92"); foreach($a as $key=>$value){ echo $value; echo $b[$key]."<br>"; } 执行结果: 语文95 数学99 英语92 |
问题是为什么输出数组$b中的值要用$b[$key]而不是$b[$value]? why?
代码如下 | 复制代码 |
$a = array("1"=>"语文","2"=>"数学","3"=>"英语"); 上面这个和下面这个是完全一样的 $a[1]="语文"; $a[2]="数学"; $a[3]="英语"; 我们输出上面的数组元素是怎么输出的呢? 肯定是 echo $a[1]; echo $a[2]; echo $a[3]; |
对不对?简单说foreach 它的格式是这样的
foreach(数组名 as 下标=>值)
下标也就是上面的$a[1],这里的1就是数组的下标! 到这你应该明白了,为什么是$a[$key]这样输出。
好了到这里关于php foreach就介绍完了,foreach只能遍历一二维数组了,如果是三维数组我们需要进行递归操作了。
下php中 运算符与表达式是一门非常有学问的知识点了,下面我整理了一些比较基本并且有用的 运算符与表达式例子了,希望这些例子能帮助到各位同学哦。一、运算符的分类
1、按操作数分类
1.!true // 一元运算符
2.$a+$b // 二元运算符
3.true ? 1:0 // 三元运算符
2、按操功能分类
(1)算术运算符
1.+、-、x、/、%(取余)
(2)字符串运算符
1.. // 例如:$a = 'abc'.'efg';
(3)赋值运算符
1.= // 简单赋值
2.+=、-=、X=、/=、%=、.= // 复合赋值
3.++($a++、++$a)、 --($a--、--$a) // 递增递减
4.&($a = 1;$b = &a) // 引用赋值
(4)比较运算符
1.==、 ===(恒等于)、 !=、 !===、 <>(不等于)、 <、 >、 <=、 >=
(5)逻辑运算符
1.// 括号内的比括号外的优先级高
2.&&(and)、 ||(or)、 !(not)、 xor(异或)、
(6)位运算符
1.&(按位与)、 |(按位或)、 ~(按位非)、 ^(按位异或)、 <<(左位移)、 >>(右位移)
二、算术运算符
%取余,常见用法:1)整除运算 2)控制取值范围
实例:判断是否为闰年(四年一闰,百年不闰,四百年再闰)
1.// %会把两边的数转成整型后在整除
2.// %两边不能用小数或负数
3.if ((($year%4 == 0) && ($year%100 != 0)) || $year%400 == 0)
4.echo "闰年";
5.else
6.echo "平年";
三、赋值运算符
01.//先自身加10,然后赋值给自己,等价于 $a=$a+10
02.$a += 10;
03.
04.//前置递增递减,先递增递减再赋值
05.++$a
06.
07.//先赋值,再递增递减
08.$a++
09.
10.//实例
11.$a = 10;
12.$b = $a++
13.$c = --$b
14.结果:a=11 b=9 c=9
四、逻辑运算符
xor异或:相同为假(两个真或两个假=假),不同为真(一真一假=假)
Tips:注意与or区别,or两个真=真
逻辑运算符短路
1.1、&& //一个为假,则后面不作运算,一定为假
2.2、|| //一个为真,则后面不作运算,一定为真
3.
4.fopen ("test.php","r") or die("失败");
Tips:为运算符 & | 没有短路特性
五、位运算符
位操作:将整型转为32位二进制,字符串转为ANSCA码来处理
相关文章
- 这篇文章主要介绍了C#中截取字符串的的基本方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-03
- 这篇文章介绍了C#判断字符串是否数字或字母的实例,有需要的朋友可以参考一下...2020-06-25
- 这篇文章主要介绍了PostgreSQL判断字符串是否包含目标字符串的多种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-02-23
- 这篇文章主要介绍了C++ string常用截取字符串方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
- 本文实例讲述了php字符串按照单词进行反转的方法。分享给大家供大家参考。具体分析如下:下面的php代码可以将字符串按照单词进行反转输出,实际上是现将字符串按照空格分隔到数组,然后对数组进行反转输出。...2015-03-15
- 这篇文章主要介绍了MySQL 字符串拆分操作(含分隔符的字符串截取),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
- 这篇文章主要介绍了使用list stream:任意对象List拼接字符串操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-09
- 这篇文章主要介绍了C# 16 进制字符串转 int的方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2020-06-25
- JS中默认中文字符长度和其它字符长度计算方法是一样的,但某些情况下我们需要获取中文字符串的实际长度,代码如下: 复制代码 代码如下: function strLength(str) { var realLength = 0, len = str.length, charCode = -1;...2014-06-07
- 这篇文章主要介绍了PostgreSQL 字符串处理与日期处理操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
- 这篇文章主要介绍了C#实现字符串转换成字节数组的简单实现方法,仅一行代码即可搞定,非常简单实用,需要的朋友可以参考下...2020-06-25
- 文章介绍一个实用的函数,我们如果用php substr来截取字符在中文上处理的很有问题,今天自己写了一个比较好的中文与英文字符截取的函数,有需要的朋友可以参考下。 ...2016-11-25
- 这篇文章主要介绍了C#实现对字符串进行大小写切换的方法,涉及C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了c#将字节数组转成易读的字符串的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要介绍了C#获取字符串后几位数的方法,实例分析了C#操作字符串的技巧,具有一定参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了解决vue字符串换行问题(绝对管用),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-06
- 这篇文章主要介绍了C#判断一个字符串是否是数字或者含有某个数字的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下...2020-06-25
- 这篇文章主要介绍了Substring截取字符串方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 在网站开发中,我们经常使用php similar text 计算两个字符串相似度;1,similar_text的用法 如果我想计算"ly89cn"和"ly89"的相似程度,有两种表示方法复制代码 代码如下: echo similar_text('ly89cn', 'ly89'); ...2015-11-08
- 这篇文章主要介绍了C#实现将字符串转换成日期格式的方法,涉及C#操作时间及字符串的相关技巧,非常简单实用,需要的朋友可以参考下...2020-06-25