最佳实践使用函数/类中的全局变量,或通过引用函数传递变量



PHP 5.6 的最佳实践是什么?什么是更加公平的方法?与资源/内存/速度有关。

通过引用一个函数传递变量。我不需要修改变量:

$bigClass = new MyBigClass();
class MyClass extends AnotherClass
{
    protected $obj;
    function __construct(namespaceinterface &$obj) {
        $this->obj =& $obj;
    }
    public function function1() {
        $this->obj->doThings();
    }
    private function function2() {
        $this->obj->otherThings();
    }
    public function function3() {
        // and so on ...
    }
}
$my_class = new MyClass($bigClass);
// $my_class->...

或我应该使用全局关键字的方式:

$bigClass = new MyBigClass();
class MyClass extends AnotherClass
{
    function __construct() { }
    public function function1() {
        global $bigClass;
        $bigClass->doThings();
    }
    private function function2() {
        global $bigClass;
        $bigClass->otherThings();
    }
    public function function3() {
        // and so on ...
    }
}
$my_class = new MyClass();
// $my_class->...

哪种方法消耗最多的资源,并且慢呢?

或什么不算什么?

谢谢

对象已经通过参考传递。这是一个显示您的测试脚本:

<?php
class MyClass {
    public $value;
}
function test(MyClass $test) {
    $test->value = 2;
}
$class = new MyClass;
$class->value = 5;
test($class);
echo $class->value; // echoes 2

通常,我认为除非有大量变量,否则您在处理参考时不必担心性能。如果您真正操作一个靠近Facebook,Amazon或Google大小的网站,则可能会从这些微观量化中看到好处,但是其他情况下,这将是浪费时间。

相关内容

  • 没有找到相关文章

最新更新