从Javascript移植一些代码我有这种不方便。例如:PHP等效于Javascript“with”范围声明
在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相同comportament,在第二个代码示例数学是多余的。
有人有一个清晰优雅的代码的任何解决方案?
我添加以下代码作为新的例子:
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]
声明,但如果所有的处理代码在像类的类成为消毒。
with (Sanitize) {
$r .= ZeroFill(numericOnly($tmp), 15); // are much more clear and using OO
}
我想要一种方法来做一个更短,没有重复的代码。
为什么你要使用类,当你想要的功能?请参阅http://php.net/cos:无前缀;) – KingCrunch
因为在某些情况下,它减少了键入的代码量,使得最终结果更加清晰和逻辑性与第一个示例类似。 –
@AllysondePaula,在更多情况下,'with'引入了错误。如果您完全了解这些错误的性质并知道您在做什么,您应该只使用它。 – gpojd