`
ycmhn
  • 浏览: 23605 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

php函数参数传递的思考

PHP 
阅读更多
按我以前一直的想法,php中除了简单变量,其他应该是都是按引用传递函数参数的
于是做了一个实验,有点意外
<?php
$a=array('s'=>1);
function s($array){$array['s']=100;}
s($a);
echo $a['s'];//结果是1
?>


这个例子至少说明了在php中数组是按值传递的
<?php
class obj{
   function __construct(){$this->s=1;}
}
function s($obj){$obj->s=100;}
$test=new obj();
s($test);
echo $test->s;//结果是100
?>

对象参数的传递和原想的一样是 引用传递的
在很多数组参数的情况下如果合理用好&进行引用传递估计对效率的提高还是不少的
分享到:
评论

相关推荐

    【pythonPHP】Python中函数详解.docx

    #### 四、函数参数 ##### 4.1 形式参数与实际参数 - **形式参数**:定义函数时指定的参数,用于接收实际参数。 - **实际参数**:调用函数时传递给函数的具体值。 **案例1:任意乘法表** 假设我们想要生成任意...

    PHP路径讲座$_SERVER,函数部分

    这些参数通常用于传递数据到脚本中。 4. `$_SERVER["DOCUMENT_ROOT"]`:显示脚本相对于服务器的文档根目录的位置,例如`D:/project/phppx`。这对于定位服务器上的绝对路径非常有用。 5. `$_SERVER["HTTP_HOST"]`:...

    由php的call_user_func传reference引发的思考

    这是因为在早期的PHP版本中,函数参数的引用传递是在函数调用时确定的,而非在函数定义时。这意味着,即使函数声明中参数是引用传递,调用时也可以直接传递值参数,反之亦然。然而,这种方式的灵活性也带来了复杂性...

    PHP面试题库

    - 函数:包括内置函数、自定义函数,了解函数参数传递(值传递、引用传递)。 2. **PHP高级概念** - OOP(面向对象编程):类、对象、继承、封装、多态和接口。 - 错误和异常处理:理解错误与异常的区别,如何...

    分享和记录常见的php面试题和面试技巧.zip

    - 函数与面向对象编程:了解函数定义、参数传递、返回值,以及类、对象、继承、封装和多态的概念。 2. **PHP与Web交互**: - GET和POST请求的区别:如何处理表单数据,以及对安全性的影响。 - Session与Cookie:...

    jizhicms(极致CMS)v1.7.1代码审计引发的思考1

    攻击者传递的URL会经过`frparam`函数的处理,这个函数在`/FrPHP/lib/Controller.php`中定义。`frparam`函数用于获取不同来源(GET, POST, 或 COOKIE)的参数值,根据`method`参数来决定如何获取。 在审计过程中,...

    php+mysql扎实个人基本功[参考].pdf

    1. **禁止使用register_globals**:register_globals在旧版PHP中默认开启,它允许全局变量直接由HTTP请求参数设置。然而,这可能导致安全问题,因此应当关闭,并通过正确的方法(如$_GET, $_POST)获取请求数据。 2...

    phper陋习 PHP开发必读

    6. **编码前不思考和计划**:良好的设计和预规划可以减少后期修改的需要。 7. **SQL执行前不编码和安全检测**:忽视SQL注入的防范,可能导致数据安全问题。 8. **不使用测试驱动开发**:TDD(测试驱动开发)有助于...

    一个简单且很好用的php分页类

    - $parameter:分页跳转的参数,用于在翻页时传递当前页码。 4. 分页显示定制 分页类允许用户自定义分页显示的配置,例如: - 重定向选项:是否在分页时进行URL重定向。 - 表头:显示的内容,例如“条记录”。 - 上...

    代码审计基础-漏洞银行大咖面对面2-SHIELD

    - **危险的执行**指用户输入的数据未经过适当的过滤或转义就被传递给危险函数执行,这可能导致诸如SQL注入、XSS攻击等安全威胁。 #### 三、学习方法 为了有效地进行代码审计,掌握一些基本的学习方法是非常必要的...

    PHP程序员常见的40个陋习,你中了几个?

    21. 使用$_GET替代$_POST传递敏感参数:$_GET是通过URL传递参数,更容易遭到攻击,应当谨慎使用。 22. 不了解正则表达式:正则表达式在文本处理中非常有用,应当掌握其基本用法。 23. 不了解SQL注入和跨站脚本攻击...

    thinkPHP删除前弹出确认框的简单实现方法

    `_request('id')`用于获取前端传递过来的ID参数。然后,我们通过Model层(M()函数)定位到User模型,并使用`where()`方法设置查询条件(基于ID)。`delete()`方法执行删除操作,如果成功,返回真值,通过`success()`...

    object-calisthenics-projeto-inicial

    9. **函数参数不超过两个**:过多的参数可能导致函数过于复杂,应考虑使用对象或者数组来传递多个值。 10. **限制类的长度**:保持类的小巧,通常建议不超过20行。这促使你思考如何有效地组织和拆分代码。 在...

    回答PHPCHINA上的几个问题:URL映射

    3. **调用动作**:通过`call_user_func_array`函数调用控制器对象中的对应动作方法,并传递参数。 #### 五、扩展思考 - **安全性考虑**:在实际项目中,还需要考虑对URL中的参数进行合法性验证,防止恶意攻击。 - *...

    简便的学生管理系统

    5. **通知公告**:系统应提供发布公告的功能,用于传达学校的重要通知,同时支持接收和查阅通知,确保信息的及时传递。 6. **权限控制**:通过角色和权限的设定,确保不同用户只能访问和操作自己权限范围内的信息,...

    xhEditor的异步载入实现代码

    在本案例中,作者采用了PHP函数`editor()`来实现xhEditor的异步加载。该函数接收两个参数:`$content`(待编辑的内容)和`$name`(文本域的ID)。实现过程主要分为以下几个步骤: 1. **初始化文本域**:首先,通过...

Global site tag (gtag.js) - Google Analytics