php中单引号与双引号区别详细

 更新时间:2016年11月25日 15:10  点击:1775
关于php中单引号与双引号区别有那些很,至于大家都说的下面我用我的理解来说说关于单引号与双引号的区别所在吧,单引号在其中间的变量是不被执行的,把变量当成了一个普通的字符串,而双引号php会去解析中间有变量没有,有的话解析变量,这样双引号在一些方法更费服务器资源。

单引号和双引号大体相同,但有一点非常重要,,就是变量引用问题 ,你把下面代码运行即可明白了

 代码如下 复制代码

<?php

$x="中国";

echo "我是$x人";//双引号

echo "<br />";

echo '我是$x人';//单引号

?>


变量用双引号括起来,单引号中的则不是(即单引号中的变量符号不解析)


单引号内部的变量不会执行

  双引号会执行

  如

 代码如下 复制代码

  $name = 'hello';

  echo "the $name";

  会输出 the hello

  而如果是单引号

 代码如下 复制代码

  $name = 'hello';

  echo 'the $name';

  会输出 the $name

  主要区别就是这个。


在字符串中引用复杂的变量组合时,可能会产生一些问题,下面的代码会正常工作:

 代码如下 复制代码
echo "value = $foo";
echo "value = $a[$i]";

     而下面的代码却不能得到我们希望的结果:

echo "value = $a[$i][$j]"; //我们希望打印二维数组$a的某个元素。

     为避免这些字串使用中的潜在问题,我们通常把复杂的变量从字串中分离开来,就像这样:

 代码如下 复制代码
echo 'value = ' . $a[$i][$j];

     还有一种办法是将复杂变量用花括号括起来,语法分析器就能正确辨认了:

 代码如下 复制代码
echo "value = {$a[$i][$j]}" //打印二维数组$a的某个元素

     这样,又出现新问题了。当我们想在字串中引用花括号字符本身时,就要记得使用转义符了:

 代码如下 复制代码
$var = 3;
echo "value = {$var}"; // 打印结果 "value = 3"
echo "value = {$var}"; // 打印结果 "value = {3}"


看个实例

 代码如下 复制代码

$var1 = "chris mao";    //assign the value "chirs mao" to $var1
$var2 = &$var1;            //reference $var1 via $var2
echo '<b>the value of $var2 is: </b>', $var2, "<br>";  //$var2 and $var1 have the same value "chris mao"
$var2 = 'my name is $var2';  //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var1 is: </b>', $var1, "<br>";  //the value of $var1 is "my name is $var2"
$var2 = "my new name is $var1";  //modify $var2, the sametime $var1 was modified
echo '<b>the value of $var2 is: </b>', $var2, "<br>";  //the value of $var1 is "my new name is my name is $var2"
echo '<b>the value of $var1 is: </b>', $var1, "<br>";  //the value of $var1 is "my new name is my name is $var2"

 代码如下 复制代码
$mode = "/^[a-z][-_.]?[a-zd]*@[a-z0-9]+[.][a-z]{2,4}/i";
$str = "a12345@j111cn.net";
echo $str.'<hr>';
if(preg_match($mode, $str, $arr)){
echo 'succeed -- <font color=red>'.$arr[0];
}else{
echo 'failed';
}

 


d 包含所有数字[0-9]
d 除所有数字外[^0-9]
w 包含所有英文字符[a-za-z_0-9]
w 除所有英文字符外[^a-za-z_0-9]
s 包含空白区域如回车、换行、分页等 [fnr]


preg_match_all ( string pattern, string subject, array matches [, int flags] )
截取比较详细的内容,采集网页,分析文本

 代码如下 复制代码
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )


提示 1、替换内容可以是一个正则也可以是数组正则
2、替换内容可以通过修正符e来解决替换执行内容

 代码如下 复制代码
preg_split ( string pattern, string subject [, int limit [, int flags]] )

 

本文章收集了三种关于从字符串或文章内容中匹配url正则表达式的php代码,前二种函数是获取以域名为标题的http,后一种是匹配内容中的url地址并且保存到数组中哦。

//方法一

$ereg_str[url] =   "^[hh]{1}[tt]{2}[pp]{1}://[ww]{3}.[0-9a-za-z][0-9a-za-z-]{0,25}((.[a-za-z]{3,4})|(.[a-za-z]{2})){1,2}$ "; //判断一个合法的url
$pattern =   $ereg_str['url'];
if(ereg($pattern,$string)) echo   " <br> right! ";
else   echo   " <br> error! ";
}


//

$str[]   =   "http://www.111cn.net";

$pattern   =   '/^(http://)?www.[0-9a-z][0-9a-z-]{0,25}((.(aero|biz|cc|co|com|coop|edu|gov|info|int|mil|museum|name|nato|net|org|tv))?(.(af|aq|at|au|be|bg|br|ca|ch|cl|cn|de|eg|es|fi|fr|gr|hk|hu|ie|il|in|iq|ir|is|it|jp|kr|mx|nl|no|nz|pe|ph|pr|pt|ru|se|sg|th|tr|tw|uk|us|za))?){1}$/i ';

foreach($str   as   $key=> $val)
{
        $key++;
        if(preg_match($pattern,$val))
                echo   " <br> <font   color=green> right! </font>   ".$val;
        else
                echo   " <br> <font   color=red> error! </font>   ".$val;
}

//方法三

//匹配<a href="xxxxxx">yyyyyy</a>
"/<a.+hrefs*=s*['"]?([^s<'"]*)['"]?.*>([^</a>].*)</a>/i"

//匹配href="xxxxxx"
s*<[aa]{1}s*href="([^"]*)"s*>([^<]*)</1>

$reg = "<a[ss]*?(href)s*=s*(?(?=["'])((["'])(?<href>[^"']*)2)|(?<src>[^s>]+))[ss]*?>";

?>

这篇文章对于初学者来说比较有用了,是来告诉你php 定义二维数组与数组定义方法哦,定义一维数组很简单,方法也比较多,定义二级或多维数组也差不多,如下。

$array[] =1; //定义数组
$array = array(1); //定义数组

/*
php如何定义二维数组(多维数组)呢?

将一个一维数组的元素也定义为数组,就是一个二维数组,


$aa=array(0=>"dd",1=>"ff");
$bb=array(0=>"b1",1=>"b2");

$cc=array(0=>$aa;1=>$bb); 此时,$cc[0]也是一个数组,$cc[1]也是一个数组,$cc就是一个二维数组.
*/

//如何动态定义多维数组呢。

$obj = array(16=>16);
for($i=0;$i<16;$i++) {
 for($j=0;$j<16;$j++) {
  $obj[$i]=$j;
 }
}

文章提供了三种php 字符串转数组方法,利用了函数explode str_split split eval等四种函数来举不同的例子说名如何把字符串转换成数组实例。

 
 $str = "corn, broccoli, zucchini";
 $ar = explode(", ", $text);
 print_r($ar);
 /*
 定义和用法
 explode() 函数把字符串分割为数组。
 
 语法
 explode(separator,string,limit)参数 描述
 separator 必需。规定在哪里分割字符串。
 string 必需。要分割的字符串。
 limit 可选。规定所返回的数组元素的最大数目。
*/ 
 
 $biuuu = 'www.111cn.net';
 print_r(str_split($biuuu)) 
 /*
 定义和用法
 str_split() 函数把字符串分割到数组中。
 
 语法
 str_split(string,length)参数 描述
 string 必需。规定要分割的字符串。
 length 可选。规定每个数组元素的长度。默认是 1。
*/
 
 //
 $str="$str=$str;";
 eval($str);
 
 $string = '杯子';
 $name = '咖啡';
 $str = '这个 $string 中装有 $name.<br>';
 echo $str;
 eval( "$str = "$str";" );
 echo $str;

 //eval eval()函数的作用是:返回与php代码相对应的字符串。
 
 
 $str="1:0:1:0:1";
 $arraylist=split(":",$str); //存入数组
 
 for($i=0;$i<count($arraylist);$i++) //把它们全部输出来
 {
 echo $arraylist[$i]."   ";
 }

[!--infotagslink--]

相关文章

  • mysql_connect与mysql_pconnect的区别详解

    在mysql中我们会看到有两种常用的数据库连接模式,一种是长久连接,另一各是页面访问完之后就断了连接,下面我来分别介绍mysql_connect与mysql_pconnect的区别,有需要了解...2016-11-25
  • C#中out与ref的区别实例解析

    这篇文章主要介绍了C#中out与ref的区别实例解析,对C#初学者有不错的学习借鉴价值,需要的朋友可以参考下...2020-06-25
  • PHP中func_get_args(),func_get_arg(),func_num_args()的区别

    复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04
  • 谈谈Jquery中的children find 的区别有哪些

    精华:find方法能找子孙,children方法只能找儿子一、Jquery中children 语法.children(selector) 说明expr是表达式,可选参数,所有选择器中的表达式都可以用在这,比如按标签名"div",按类名".class",按序号":first"等等,如果表...2015-10-21
  • PS中像素大小、文档大小的区别

    在PS中像素大小、文档大小有什么区别呢,这个估计很多初学者不清楚,下面我来给大家讲解一下,希望对你有帮助。 1、像素大小 通常用于显示屏显示的图片大小的调整。菜...2016-09-14
  • PostgreSQL 中的单引号与双引号用法说明

    这篇文章主要介绍了PostgreSQL 中的单引号与双引号用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • C#中sleep和wait的区别分析

    这篇文章主要介绍了C#中sleep和wait的区别分析,有助于深入理解C#中线程的原理与使用技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • uniapp和vue的区别详解

    这篇文章主要介绍了uniapp和vue的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-10-19
  • list与push的区别

    //函数list while(list($id,$username,$password,$add_date,$mdn,$mobile,$channel,$last_date,$area,$nickname) = mysql_fetch_array($rs)){ ...2016-11-25
  • input框中的name和id的区别

    这篇文章主要介绍了input框中的name和id的区别介绍,非常不错,具有参考借鉴价值,需要的朋友可以参考下...2016-11-22
  • php switch 与 if else 区别

    在php中switch是选择,if else也有同理,但是它们肯定是有区别的,那么我们来看看它们两者的区别在哪里呢,下面先看switch case语句吧。 switch($id){ case 1: ...2016-11-25
  • 浅谈C++中字符串输入get与getline的区别

    这篇文章主要介绍了C++中字符串输入get与getline的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-04-25
  • pgsql 解决包含有单引号的字符串操作

    这篇文章主要介绍了pgsql 解决包含有单引号的字符串操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-01
  • php mysql localhost,127.0.0.1和ip区别

    一家之言:localhost与127.0.0.1的区别 localhost与127.0.0.1的区别是什么?相信有人会说是本地ip,曾有人说,用127.0.0.1比localhost好,可以减少一次解析。看来这个入门问题还有人不清楚,其实这两者是有区别的。no1:localhos...2014-05-31
  • C#中类与接口的区别个人总结

    这篇文章主要介绍了C#中类与接口的区别个人总结,本文讲解了类与接口的区别、接口的用处主要体现在下面几个方面、一些接口的疑问等内容,需要的朋友可以参考下...2020-06-25
  • 详解CSS3中nth-child与nth-of-type的区别

    这篇文章详细解析了CSS3中nth-child与nth-of-type的区别,有兴趣的同学可以参考一下 CSS3中nth-child与nth-of-type的区别其实很简单::nth-of-type为什么要叫:nth-of...2017-01-22
  • include包含头文件的语句中,双引号和尖括号的区别(详解)

    下面小编就为大家带来一篇include包含头文件的语句中,双引号和尖括号的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2020-04-25
  • 英语单词state与status的区别

    state倾向于condition,是一种延续性的状态。status常用于描述一个过程中的某阶段(phase),类似于C语言中枚举型变量某一个固定的值,这个值属于一个已知的集合。这篇文章主要介绍了英语单词state与status的区别,需要的朋友可以参考下...2020-06-25
  • php echo print print_r三者区别分析

    php教程 echo print print_r三者区别分析 echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print() 只能打印出简单类型变量的...2016-11-25
  • $i++ ++$i 运行速度与区别

    关于$i++与++$i是什么区别了,下面来看看这些区别的分别。 <?php 方式一: $begin = time(); $i = 0; while(++$i < 10000) { $j = 0; while(++$j < 10000)...2016-11-25