>백엔드 개발 >PHP 튜토리얼 >php 这里用&引用传值好还是global 好? 为什么

php 这里用&引用传值好还是global 好? 为什么

WBOY
WBOY원래의
2016-06-06 20:12:511128검색

$con = 10;
$row = 20;

function numbers(&$con,$row){

<code>// global $con;
 $con =  pow($con,2);
 $row = pow($row,2);

 
  </code>

}
numbers($con,$row);
echo $con;

回复内容:

$con = 10;
$row = 20;

function numbers(&$con,$row){

<code>// global $con;
 $con =  pow($con,2);
 $row = pow($row,2);

 
  </code>

}
numbers($con,$row);
echo $con;

推荐使用引用传值。大多数情况下引用的值会在函数调用后很近的代码里就会进程处理,变量的作用域控制得非常小;而global定义的变量作用域几乎等同于全局变量,稍有不慎就会引起不必要的问题。举个简单的例子,你定义一个global变量的时候,就需要考虑整个系统中是不是还有地方也定义和使用了同名的global变量。
这也就是为什么面相对象的编程中都带有引用传值,而摒弃全局变量的原因。另外PHP中的对象、资源也是默认采用引用传递的。

引用,传递的是地址
函数需要在多处使用,适用性不建议用global

对象都是传引用  数组传参数如果比较大的话用引用,几条数据的就无所谓了 

从复用性角度来说当然是传引用好。

这种地方你想怎么写就怎么写吧。我反正是能不要全局变量就不用全局变量。

如果只能二选一的话,我推荐引用。
使用引用的函数通用性更好。比如有一天你忽然想让这个函数改变一个局部变量,这时用global的函数就不行了,而用引用的版本依然可以使用。

用类属性不行吗
如果有一个值需要频繁的处理 就声明为类属性被,记得 psr-0 里说一个文件一个类,所以一个类里面用属性就够用了吧,用的时候$this->就好了,欢迎指正:

<code>    

<?php class test{
        public $con = 10;
        public $row = 20;

        function numbers(){
             $con =  pow($this->con,2);
             $row = pow($this->row,2);
             echo $con;
            }
    }
    (new test())->numbers();    </code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.