首页 > 编程技术 > php

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

发布时间:2016-11-25 15:10

关于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--]

您可能感兴趣的文章: