加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 17:14:13 所属栏目:PHP教程 来源:网络整理
导读:从 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(Ma
从 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->每次.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读