`

PHP引用陷阱

    博客分类:
  • php
阅读更多
1.  $a = '333';
    $c = &$a;
    $d = '888';
    $c = &$d;
    echo $c;
    echo $a;

2. $a = '333';
    $c = &$a;
    $d = '888';
    $c = $d;
    echo $c;
    echo $a;

其中第四行$c = $d和$c = &$d,导致的结果完全不一样.
$c = $d,因为$c是$a的一个引用,所以$c和$a的值都会变成888,
但是$c = &$d,是$c变成了$d的引用了,和$a已经没有关系了,所以此时$a的值还是333.
注意,引用只是一个别名而已,并不是指针.
其实类似于Unix的硬连接.
http://www.php.net/manual/zh/language.references.whatare.php
分享到:
评论

相关推荐

    PHP深度分析:101个核心技巧、窍门和问题解决方法(原书第2版).pdf+PHP 内核文档.chm

    例如,理解PHP的数据类型,如字符串、数组、对象和引用的用法,以及如何有效地操作它们。此外,书中可能会讨论变量作用域、函数与方法的定义与调用,以及面向对象编程的概念,包括类、对象、继承、多态和接口。 ...

    php foreach 使用&(与运算符)引用赋值要注意的问题

    在上述例子中,作者通过两个数组($arr和$arr2)演示了在foreach循环中使用引用的可能陷阱。第一个foreach循环向数组元素添加字符串"4"。如果没有在循环后断开引用,那么第二个foreach循环遍历第二个数组($arr2)时,...

    PHP程序设计-3期(KC016) 经验技巧2-1 PHP语法规则.doc

    本文档详细介绍了PHP的一些核心语法规则,包括预定义常量、字符串引用方式、逻辑判断以及数组操作,这些都是编写高效PHP代码的基础。 首先,我们来看一下PHP的预定义常量。预定义常量提供了系统环境和PHP运行时的...

    浅谈PHP中关于foreach使用引用变量的坑

    然而,当我们在`foreach`循环中使用引用变量时,可能会遇到一些陷阱,导致意料之外的结果。本文将深入探讨这个问题,并提供解决方案。 首先,我们要理解PHP中的引用。在PHP中,引用并不是创建了一个新变量,而是让...

    PHP开发者常见误解编程小技巧共3页.pdf.zip

    在PHP开发过程中,许多程序员可能由于缺乏经验或者对语言特性的深入理解,会遇到一些常见的误解和编程陷阱。这份名为“PHP开发者常见误解编程小技巧共3页.pdf”的文档,虽然压缩包中还包含了一个名为“赚钱项目”的...

    php面试题三

    从给定的文件中,我们可以提炼出...通过以上知识点的总结,我们可以看出PHP语言在数组操作、函数使用、变量作用域管理、错误处理等方面提供了丰富的功能和机制,同时也需要注意一些细节和陷阱,以避免常见的编程错误。

    PHP高级面试题分享.pdf

    3. **类型转换的陷阱**:在PHP中,`0 == "a"` 会因为弱类型比较导致`0`等于字符串`"a"`,因此`$tmp`会被赋值为`1`。这是因为`0 === "a"`是false,而`0 == 0`是true。要避免这种情况,可以使用严格比较符`===`,即`$...

    谈谈PHP中相对路径的问题与绝对路径的使用

    本文主要探讨了PHP中相对路径的问题及其可能导致的陷阱,以及如何有效地使用绝对路径来避免这些问题。 首先,我们要理解相对路径和绝对路径的概念。相对路径是相对于当前工作目录或当前文件的路径,而绝对路径则是...

    PHP程序编码规范标准20020123.doc

    9. **引用变量和函数返回引用**:使用`&`前缀表示引用。 10. **全局变量**:避免使用全局变量,但如果必须使用,应有明确的命名。 11. **全局常量**:常量全大写,单词间用下划线分隔,如`MAX_USER_LIMIT`。 12. **...

    探讨:php中在foreach中使用foreach ($arr as &$value) 这种类型的解释

    然而,由于其特性,开发者必须充分了解引用的工作方式,以避免可能出现的陷阱。在适当的时候使用这个功能,可以提高代码效率,但如果不慎使用,也可能导致难以预料的错误。因此,在实践中,理解并明智地应用这种技术...

    PHP程序编码规范标准.doc

    - **引用变量和函数返回引用**:使用`&`符号表示引用,如`&$refVar`。 - **全局变量**:尽量避免使用全局变量,若必须使用,需明确标识,如`$GLOBALS['myVar']`。 - **全局常量**:全大写,下划线分隔,如`MY_...

    汇总PHP编程注意事项.doc

    在PHP编程中,需要注意一些关键点以避免潜在的错误和陷阱。以下是一些重要的注意事项: 1. **隐性三元操作符(?:)**:在PHP中,三元操作符`?:`具有一定的优先级。在例1中,`$person = $who or $person = "laruence";...

    PHP程序设计-3期(KC016) 2.7.3数组遍历常见问题.docx

    在PHP程序设计中,数组遍历是常见的操作,但初学者常常会遇到一些陷阱和问题。以下是关于数组遍历的一些关键知识点以及针对描述中提到的问题的详细解释: 1. **数组遍历的基础** - PHP中的数组可以是索引数组或...

    PHP程序员不应该忽略的3点

    同时,不断学习和实践,比如了解常见的编程陷阱、优化技巧以及新的开发工具,都能进一步提升PHP程序员的专业技能。在职业生涯中,保持持续学习的态度和良好的编程习惯至关重要,这对于个人职业发展有着积极的影响。

    php类命名规范 、标准及细则

    9. **引用变量和函数返回引用**:使用`&`符号,如`function &getVariable()`。 10. **全局变量**:应避免使用,但如果必要,遵循驼峰命名法,如`$globalValue`。 11. **全局常量**:全大写字母,用下划线分隔,如`...

    php中call_user_func函数使用注意事项

    这一函数在需要动态调用函数时非常有用,但在使用时应注意一些细节和潜在的陷阱。 首先,call_user_func函数的最简单形式是传入一个函数名和参数。例如: ```php function a($b, $c) { echo $b . $c; } call_...

    PHP PDOStatement:bindParam插入数据错误问题分析

    在PHP开发中,PDOStatement对象的bindParam方法是一个非常重要的功能,用于绑定参数到预处理语句中。然而,如果不正确使用,它可能导致...对于那些要求参数为引用并延迟处理的函数,一定要谨慎处理,以避免潜在的陷阱。

    php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)

    然而,在处理多维数组时,开发者可能会遇到一些陷阱。特别是当涉及到将多维数组转换为CSV文件时,分隔符的使用就显得尤为重要。 首先,fputcsv()函数的基本用法是:fputcsv(resource handle[, array fields[, ...

Global site tag (gtag.js) - Google Analytics