分析PHP中单双引号的误区和双引号小隐患_php技巧

许多程序员以为在PHP中单引号和双引号是一样的,其实这要看怎么用法,在有些方面它们确实是一样,但有一些方面它们也有着很大的区别,今天小编就来为您说说有哪些区别。

1、一般情况下两者是通用的.但如果双引号内写的是变量就会执行解析操作,而单引号则不解析,这个怎么说?还是举个例子吧。

这下看明白了吧!

2、执行效率不一样,单引号的执行速度要比双引号的执行速度快,如果是一样大型的程序,这方面还是要注意优化的,毕竟PHP属于解释型语言。所以如果内部只有纯字符串的时候,用单引号(速度快),内部有别的东西(如变量)的时候,用双号引会更灵活些。

PHP双引号小隐患

PHP很多语法特性会让攻击者有机可乘,例如PHP会检测双引号中的变量。

执行如下代码:

function test()
{
 echo "abc";
}
echo "${@test()}";

//或者

 echo ${@phpinfo()};

原理如下:

$a = 'b';
$b = 'a';

echo $$a; //a

以上就利用了PHP可变变量,双引号{}可解析双引号内的变量内容特性制造出来的小麻烦。 大家看懂了吗?这些误区和小隐患程序员们在平时要多多注意了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索php
单引号
php中单双引号的区别、js中单双引号的区别、lua中单引号和双引号、java中单引号和双引号、js中单引号和双引号,以便于您获取更多的相关知识。

时间: 2024-09-27 20:00:22

分析PHP中单双引号的误区和双引号小隐患_php技巧的相关文章

php下防止单引号,双引号在接受页面转义的设置方法_php技巧

PHP页面中如果不希望出现以下情况: 单引号被转义为 \' 双引号被转义为 \" 那么可以进行如下设置以防止: 方法一:在PHP.ini中设置:magic_quotes_gpc = Off 方法二: $str=stripcslashes($str)

PHP中单引号与双引号的区别分析_php技巧

①转义的字符不同 单引号和双引号中都可以使用转义字符(\),但只能转义在单引号中引起来的单引号和转义转义符本身.如果用双引号("")括起字符串,PHP懂得更多特殊字符串的转义序列. <?php $str1 = '\',\\,\r\n\t\v\$\"'; echo $str1,'<br />'; $str2 = "\",\\,a\r\n\tb\v\$\'"; echo $str2,'<br />'; ?> ②对变

简单概括PHP的字符串中单引号与双引号的区别_php技巧

今天有个朋友问起,说下区别,顺便复习下. 单引号与双引号的不同: " "双引号里面的字段会经过编译器解释,然后再当作HTML代码输出. ' '单引号里面的不进行解释,直接输出.  单引号解析的时间比双引号快 . 单引号支持\转义符,双引号支持的转义符更多 . $hello= 3; echo "hello is $hello"; // 打印结果:hello is 3 echo 'hello is $hello'; // 打印结果: hello is $hello ec

Word里面中文双引号自动变英文双引号的解决方法

  当然通过选中双引号在内的文字然后修改字体为宋体(中文正文)来解决,但这样总归给工作带来了一定的麻烦,而且还很容易忘记修改,下面本文就介绍一下关于Word2013输入中文双引号自动变英文双引号的两种解决方法. 方法一.更改模板文件 1.用Word2013打开或新建一个Word空白文档,右击"样式"栏中的"正文"样式,选择"修改". 2.在打开的窗口中,点选"基于该模板的新文档". 3.点击"格式"--&g

Word里的英文双引号批量变中文双引号

  要把Word里的英文双引号换成中文双引号?简单!看图! 具体操作如下: 1.按Ctrl+H 2.查找处填:(")(*)(") 3.替换处填:"2" 4.勾选"使用通配符" 5.点击确定

PHP 单引号与双引号的区别_php技巧

1.定义字符串 在PHP中,字符串的定义可以使用单引号,也可以使用双引号.但是必须使用同一种单或双引号来定义字符串,如:'Hello"和"Hello'为非法的字符串定义. 定义字符串时,只有一种引号被视为定义符,即单引号或双引号.于是,如果一个字符串由双引号开始,那么只有双引号被分析器解析.这样,你就可以在双引号串中包含任何其他字符,甚至单引号.下面的引号串都是合法的: Php代码 复制代码 代码如下: $s = "I am a 'single quote string' i

java方法参数带双引号和不带双引号的区别

问题描述 java方法参数带双引号和不带双引号的区别 java方法参数带双引号和不带双引号的区别 比如map.put( " billNum","订单编号", +stateStr); 为什么会有加号,难道方法参数还可以是一个运算表达式 解决方案 map.put( " billNum","订单编号", +stateStr); 这么写不合法 map.put( " billNum","订单编号"

PHP处理JSON字符串key缺少双引号的解决方法_php技巧

本文实例讲述了PHP处理JSON字符串key缺少引号的解决方法,分享给大家供大家参考之用.具体方法如下: 通常来说,JSON字符串是key:value形式的字符串,正常key是由双引号括起来的. 例如: <?php $data = array('name'=>'fdipzone'); echo json_encode($data); // {"name":"fdipzone"} print_r(json_decode(json_encode($data)

PHP防止注入攻击实例分析_php技巧

本文以实例形式详细分析了PHP防止注入攻击的方法.分享给大家供大家参考.具体分析如下: PHP addslashes() 函数--单撇号加斜线转义 PHP String 函数 定义和用法 addslashes() 函数在指定的预定义字符前添加反斜杠. 这些预定义字符是:  单引号 (')  双引号 (")  反斜杠 (\)  NULL语法: addslashes(string) 参数  描述 string 必需.规定要检查的字符串. 提示和注释 提示:该函数可用于为存储在数据库中的字符串以及数据