编程语言
首页 > 编程语言> > PHP相当于Javascript“with”范围语句

PHP相当于Javascript“with”范围语句

作者:互联网

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]的语句中使用temp $var,但是如果所有的处理代码都变成了类Sanitize这样的类.

with (Sanitize) {
  $r .= ZeroFill(numericOnly($tmp), 15); // are much more clear and using OO
}

我想要一种方法来做一个更短但没有重复的代码.

解决方法:

你正在寻找的东西更像是java而不是javascript,在java中这个资格是可选的,可以省略. javascript的with语句功能正常,因为它甚至不能用于赋值.

PHP没有这个,你必须明确输入$this->每次.

标签:php,javascript,with-statement
来源: https://codeday.me/bug/20190625/1287340.html