Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php getter方法的包装器_Php_Class - Fatal编程技术网

Php getter方法的包装器

Php getter方法的包装器,php,class,Php,Class,如果我有这样的方法 function getVar1(){ return $this->var1; } function getVar2(){ return $this->var2; } 等等 这些变量是要打印在屏幕上的,创建直接打印它们的附加方法是一个好主意吗 像 或者我应该坚持在需要的地方调用echo getVar1吗?使用echo getVar1;为此目的。为此创建函数不仅浪费时间,而且是用无用的东西将代码弄得乱七八糟的好方法。使用echo getVar1;为此目的

如果我有这样的方法

function getVar1(){
  return $this->var1;
}

function getVar2(){
  return $this->var2;
}
等等

这些变量是要打印在屏幕上的,创建直接打印它们的附加方法是一个好主意吗


或者我应该坚持在需要的地方调用echo getVar1吗?

使用echo getVar1;为此目的。为此创建函数不仅浪费时间,而且是用无用的东西将代码弄得乱七八糟的好方法。

使用echo getVar1;为此目的。为此创建函数不仅浪费时间,而且是用无用的东西将代码弄得乱七八糟的好方法。

函数应该按照其名称来做。这是核心设计原则之一。当你说getVar时,它会做它想做的事情:返回一个变量

在您的示例中,您甚至没有指定函数的作用。如果你想有一个打印东西的函数,那么就称它为printVar1或者类似的东西


另一方面,我必须同意小偷的说法。您可以使用echo getVar1,而不是创建更大的类。尤其是在PHPwhere这样的解释语言中,类比编译语言增加了更多的开销

函数应该按照其名称的含义执行。这是核心设计原则之一。当你说getVar时,它会做它想做的事情:返回一个变量

在您的示例中,您甚至没有指定函数的作用。如果你想有一个打印东西的函数,那么就称它为printVar1或者类似的东西


另一方面,我必须同意小偷的说法。您可以使用echo getVar1,而不是创建更大的类。尤其是在PHPwhere这样的解释语言中,类比编译语言增加了更多的开销

@KingCrunch:PHP可以编译成字节码,但这是针对特殊情况的。今天执行的98%的PHP在每个请求上都会被解释。只有在没有APC,甚至没有APC的情况下,PHP代码才会不再被解释。PHP-code不再被解释。那太可笑了!为什么不从系统中删除php.exe,看看脚本运行得有多好!说句公道话,它会像你说的那样编译成每个请求的字节码。但它在编译之前还需要解释。啊,我明白了。解释器直接从源文件中提取的标记执行代码。这尤其意味着,例如,来自该文件的函数,被多次调用,总是直接从令牌执行,这可能会变慢。但是PHP只将令牌编译成字节码一次,即使代码需要多次。这是一个巨大的区别。这里最低效的部分是读取数据时的IO操作file@KingCrunch:PHP可以编译成字节码,但这是针对特定情况的。今天执行的98%的PHP在每个请求上都会被解释。只有在没有APC,甚至没有APC的情况下,PHP代码才会不再被解释。PHP-code不再被解释。那太可笑了!为什么不从系统中删除php.exe,看看脚本运行得有多好!说句公道话,它会像你说的那样编译成每个请求的字节码。但它在编译之前还需要解释。啊,我明白了。解释器直接从源文件中提取的标记执行代码。这尤其意味着,例如,来自该文件的函数,被多次调用,总是直接从令牌执行,这可能会变慢。但是PHP只将令牌编译成字节码一次,即使代码需要多次。这是一个巨大的区别。这里最低效的部分是读取文件时的IO操作。这里的实际弊端是浅层的getter本身。为什么是浅层的?你这是什么意思?getter应该只返回一个受保护的变量。这有什么问题?请参阅以进行讨论。拥有它们并不过分面向对象。这里的实际弊端是肤浅的获取者本身。为什么肤浅?你这是什么意思?getter应该只返回一个受保护的变量。这有什么问题?请参阅以进行讨论。拥有它们并不过分面向对象。
   function Var1(){
     echo $this->getVar1();
   }

   function Var2(){
     echo $this->getVar2();
   }