Php 这是糟糕的编程实践吗?
可能重复:Php 这是糟糕的编程实践吗?,php,Php,可能重复: 用以下方式访问类中函数中的全局变量是不是很糟糕的编程(PHP)实践 class test{ function a(){ global $myvar; .. } function b(){ global $myvar; .. } } 谢谢。在我看来是的。您可以始终使用构造函数将全局变量“发布”到方法中,并通过字段保持链接。我认为是这样。您可以使用构造函数将全局变量“发布”到您的方法中,并保持通过字段的链接。在我看来,是的,像您这样使用不是一个好的做法。你可以把这个当作 cla
用以下方式访问类中函数中的全局变量是不是很糟糕的编程(PHP)实践
class test{
function a(){
global $myvar;
..
}
function b(){
global $myvar;
..
}
}
谢谢。在我看来是的。您可以始终使用构造函数将全局变量“发布”到方法中,并通过字段保持链接。我认为是这样。您可以使用构造函数将全局变量“发布”到您的方法中,并保持通过字段的链接。在我看来,是的,像您这样使用不是一个好的做法。你可以把这个当作
class test{
private $myVar;
function __construct($myVar)
{
$this->myVar = $myVar;
}
function a(){
echo $this->myvar;
..
}
}
class test{
private $myVar;
function __construct()
{
global $myVar;
$this->myVar = $myVar;
}
function a(){
echo $this->myvar;
..
}
}
在我看来,是的,像你那样使用它不是一个好的做法。你可以把这个当作
class test{
private $myVar;
function __construct($myVar)
{
$this->myVar = $myVar;
}
function a(){
echo $this->myvar;
..
}
}
class test{
private $myVar;
function __construct()
{
global $myVar;
$this->myVar = $myVar;
}
function a(){
echo $this->myvar;
..
}
}
它不优雅。您应该在构造函数中传递该var,并将其保存到类中的
private$var
中,以便在每个函数中使用一个简单的$this->var
$myUnicorn = "Pink";
class Unicorn {
private $currentUnicorn;
public function __construct($current) {
$this->currentUnicorn = $current;
}
public function echoIt() {
echo $this->currentUnicorn;
}
public function killIt() {
unset($this->currentUnicorn); // :(
}
}
$u = new Unicorn($myUnicorn);
$u->killIt();
它不优雅。您应该在构造函数中传递该var,并将其保存到类中的
private$var
中,以便在每个函数中使用一个简单的$this->var
$myUnicorn = "Pink";
class Unicorn {
private $currentUnicorn;
public function __construct($current) {
$this->currentUnicorn = $current;
}
public function echoIt() {
echo $this->currentUnicorn;
}
public function killIt() {
unset($this->currentUnicorn); // :(
}
}
$u = new Unicorn($myUnicorn);
$u->killIt();
你不应该做那样的事,除非你必须这样做。如果有更好的方法做这件事是有意义的,那么就使用它。例如,有些人使用它来访问配置变量,但更好的方法是使用
define()
语句或静态类和文件
TL;博士-只有在你必须的时候才做。否则,不要 除非你必须这样做,否则你不应该这样做。如果有更好的方法做这件事是有意义的,那么就使用它。例如,有些人使用它来访问配置变量,但更好的方法是使用
define()
语句或静态类和文件
TL;博士-只有在你必须的时候才做。否则,不要 在我看来,这太糟糕了。使类依赖于外部变量。在不存在此变量的上下文中实例化的对象将无法工作
将变量传递给类的构造函数。这样,只有在提供参数的情况下才能实例化对象。在我看来,这是非常糟糕的。使类依赖于外部变量。在不存在此变量的上下文中实例化的对象将无法工作
将变量传递给类的构造函数。这样,只有在提供参数的情况下才能实例化对象。这就是我的意思,谢谢你的示例。这就是我的意思,谢谢你的示例。