從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