`
FZtree
  • 浏览: 110015 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

php 函数实参的处理时 数组和对象的不同

 
阅读更多
<?php
$tar = array('father'=>'rendy');

function test(array $arr){
  $arr['father'] = 'test';
  echo 'TEST>>'.$arr['father'];
  echo "\n";
}

test($tar);
echo $tar['father'];

输出 

TEST>>test

rendy

 

 

 

<?php
$tar = new stdClass();
$tar->father = 'rendy';

function test($obj){
  $obj->father = 'test';
  echo 'TEST>>'.$obj->father;
  echo "\n";
}

test($tar);
echo $tar->father;

 输出

TEST>>test

test

 

总结一下

PHP5.3

argument 是 obj的时候 有副作用

argument 是 arr的时候 没有副作用

 

=============

这是为什么呢?

=============

这个得从对象赋值说起

 

<?php
$par = new stdClass();
$par->father = 'rendy';

$tar = clone $par;
$tar->father = 'par';

echo $tar->father."\n";
echo $par->father."\n";
 输出

par

rendy 

 

#5去掉clone

输出

par

par

 

再看一下数组的赋值

<?php
$par = array('father'=>'rendy');

$tar = $par;
$tar['father'] = 'par';

echo $tar['father']."\n";
echo $par['father']."\n";

 

输出

par

rendy

 

 

分享到:
评论

相关推荐

    PHP函数实验报告

    这份“PHP函数实验报告”详细介绍了通过实验来理解和应用PHP函数的过程,旨在加深对PHP函数的理解并提升实践能力。 一、函数的基本概念 函数在PHP中扮演着核心角色,它们是一组执行特定任务的代码块。可以将函数...

    PHP.rar_PHP 函数

    **PHP函数详解** PHP(Hypertext Preprocessor)是一种广泛使用的开源脚本语言,尤其适用于Web开发,可以嵌入到HTML中使用。PHP的核心特性之一就是其丰富的内置函数库,这些函数极大地简化了编程任务,提高了开发...

    php中函数的形参与实参的问题说明

    理解形参与实参的关系对于编写正确、有效的PHP函数至关重要。 1. 形参与实参的数量对应: 当定义函数时,我们会声明形参,它们在函数体内部作为变量使用。调用函数时,我们需要传递相应的实参。如果实参个数少于...

    PHP函数的应用详解.pdf

    PHP函数是编程语言PHP中的核心概念,用于组织代码和实现特定功能。函数具有以下几个关键特点: 1. **命名唯一**:每个函数都有一个独特的名称,通过这个名称可以在代码的任何地方调用它。 2. **独立性**:函数能够...

    PHP数组传递是值传递而非引用传递概念纠正

    这也提示我们,在使用PHP处理数组时,如果需要在函数内部修改数组,并希望这些修改反映到原始数组中,我们必须使用引用传递。在PHP中,可以通过在函数参数前加 `&` 符号来实现这一点: ```php function test_arr(&$...

    大学php经典试题

    19. doubler()函数通过引用传递$value,所以函数内的改变会影响到实参。当传递的是引用时,$a的值变为6。 20. 与第19题类似,当函数接受变量的引用时,变量的值会被改变。因此,$a的值仍为6。 21. array_push()用于...

    PHP笔记 Php

    - 数组操作:数组是一种复合数据类型,可以存储不同长度和类型的元素,如整型、字符串、对象等。 数组在PHP中是极其重要的,可以使用索引数组、关联数组或混合数组。常见的数组操作函数包括`count()`(计数)、`...

    PHP技术参考手册.docx

    - **函数参数**: 形参与实参的区别。 - **全局变量与静态变量**: 使用场景及注意事项。 - **函数返回值**: 使用`return`返回值。 #### 六、数组 - **声明与初始化**: 创建数组的不同方式。 - **数组类型**: 索引...

    PHP基础讲义pdf版含视频下载地址。

    8. 常用数组函数讲解 95 9. 数组面试题讲解 104 五、 Mysql 105 1. 后续教学日程及mysql安装 105 2. PHP连接mysql 106 3. 资源的概念及发送sql查询 109 4. php修改表数据 112 5. php查询表数据 113 6. 查询与修改...

    JS函数arguments数组获得实际传参数个数的实现方法

    JS与PHP在函数传参方面有点不同,PHP形参与实参个数要匹配,而JS就灵活多了,可以随意传参,实参比形参少或多都不会报错。 实参比形参多不会报错 function say(a){ alert&#40;a&#41;; } say('琼台博客','WEB技术...

    JavaScript中使用arguments获得函数传参个数实例

    这个函数没有明确的形参定义,仅通过arguments对象来获取和处理实际传入的参数。 另一个例子展示了如何利用arguments对象实现一个简单的排序算法。在这个例子中,通过嵌套循环对arguments对象中的值进行比较和赋值...

    提权技术详解.pptx

    5. PHP支持多种数据类型:字符串、整型、浮点型、布尔型、数组、对象和NULL。 6. 字符串函数如`strlen()`用于计算字符串长度,`strpos()`用于查找字符串内特定字符的位置。 7. PHP常量通过`define()`函数设置,一旦...

    2021-2022计算机二级等级考试试题及答案No.12734.docx

    13. 形参为指针变量时,实参可以是数组名或者指向数组的指针,因此答案是错误。 14. 全局变量的作用域贯穿整个程序,因此可以在任何函数中使用,答案是正确。 15. Web服务基于HTTP协议,所以答案是C。 16. 正确...

    javascript入门笔记

    Javascript Basic 1、Javascript 概述(了解) ... 调用函数时,所传递的参数列表,称之为"实参(实际参数)" 3、练习 1、定义一个函数 change ,该函数中接收两个参数(a,b) 2、在函数体中,如果 a 大于 b的话...

    2021-2022计算机二级等级考试试题及答案No.15313.docx

    22. **形参与实参**:在函数调用中,形参为指针变量时,实参可以是数组名、指向数组的指针或其他符合类型的表达式,不一定必须是数组名。 23. **操作查询**:操作查询包括更新、追加和删除查询,但不包括参数查询,...

    PHP 学习文档

    以上是根据提供的标题、描述、标签和部分内容整理出的关于PHP的基础知识点,涵盖了PHP的基本语法、变量处理、数据类型、类型转换、输出语句、运算符、控制结构以及函数等内容。对于初学者来说,这些内容构成了学习...

    2021-2022计算机二级等级考试试题及答案No.11625.docx

    **详细解释**:虽然在 C 语言中,当函数参数声明为指针类型时,传入的实参可以是数组名,但实际上也可以是其他指针类型或指向相应类型的变量。因此,实参的选择取决于具体的编程需求和上下文环境。 ### 12. Word ...

    php与js的区别是什么

    JavaScript中,空对象和空数组在转换为布尔值时会变成`true`,而PHP中这些值会转换为`false`(在PHP4中,空对象也是`false`)。此外,JavaScript中的非零负数值也会被转换为`true`。 2. 实形参的不同: ...

    PHP中的类型提示(type hinting)功能介绍

    一些开发者认为类型提示是PHP面向对象进步的一个体现,它能够帮助开发者更好地理解和维护代码,尤其是在处理复杂的数据结构和对象时。而另一些开发者则认为,由于PHP本质上是动态和弱类型的,过度使用类型提示可能会...

Global site tag (gtag.js) - Google Analytics