【发布时间】:2012-11-07 21:11:54
【问题描述】:
从 Javascript 移植一些代码给我带来了不便。例如:
在javascript中我们可以生成这段代码。
var a, x, y;
var r = 10;
with (Math) {
a = PI * r * r;
x = r * cos(PI);
y = r * sin(PI / 2);
}
相反
a = Math.PI * r * r;
x = r * Math.cos(Math.PI);
y = r * Math.sin(Math.PI / 2);
在最后一个例子中,在 PHP 和 IE 中也是一样的,在第二个代码例子中 Math 是多余的。
有人有任何解决方案来清晰优雅的代码吗?
我正在添加以下代码作为新示例:
class MyExampleClass {
function example {
for($i = 0; $i < count($this->Registers); $i++) {
$r = "50";
$r .= $this->ZeroFill($this->numericOnly($this->Registers[$i]->Id)), 15) . $this->ZeroFill($this->numericOnly($this->Registers[$i]->Inscription), 25);
$r .= $this->ZeroFill($this->Registers[$i]->Model, 2 );
$r .= $this->PadR($this->alpha($this->Registers[$i]->Date), 10 );
$this->WriteRecord( $r);
}
}
在第三个示例中,我可以在 $this->Registers[$i] 的 for 语句中使用 temp $var,但如果所有处理代码都在像 Sanitize 类这样的类中。
with (Sanitize) {
$r .= ZeroFill(numericOnly($tmp), 15); // are much more clear and using OO
}
我想要一种方法来编写更短且不重复的代码。
【问题讨论】:
-
为什么要使用类,而不是函数?见php.net/cos:没有前缀;)
-
因为在某些情况下,它减少了键入的代码量,使最终结果更清晰,逻辑如第一个例子。
-
@AllysondePaula,在更多情况下,
with会引入错误。只有在完全了解这些错误的性质并知道自己在做什么的情况下,才应该使用它。 -
With真的可以引入错误,我同意。但在某些情况下,缩短代码更容易阅读和理解业务逻辑。
标签: php javascript with-statement