最佳实践是在 functions/classes 内使用全局变量还是通过引用函数传递变量?
Best practice use global variables inside functions/classes or pass a variable by reference to a function?
PHP 5.6+ 的最佳实践是什么?
更节省的方法是什么?与资源/内存/速度有关。
通过引用函数传递变量。我不需要修改变量:
$bigClass = new MyBigClass();
class MyClass extends AnotherClass
{
protected $obj;
function __construct(\namespace\interface &$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、亚马逊或 Google 规模的网站,您可能会看到这些微优化的好处,否则,这将是浪费时间。
PHP 5.6+ 的最佳实践是什么? 更节省的方法是什么?与资源/内存/速度有关。
通过引用函数传递变量。我不需要修改变量:
$bigClass = new MyBigClass();
class MyClass extends AnotherClass
{
protected $obj;
function __construct(\namespace\interface &$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、亚马逊或 Google 规模的网站,您可能会看到这些微优化的好处,否则,这将是浪费时间。