`在PHP中使用`and`let`?

`在PHP中使用`and`let`?,php,javascript,with-statement,Php,Javascript,With Statement,最近,我发现了关于javascript的语言和语句 我对实现这里提到的东西很感兴趣,除了OOP风格的PHP 比如: 那么,PHP是否也有类似的功能,或者如何在PHP中实现这一功能?不,PHP中没有with或let语句。 但是中提到的替代方法也适用于php。不,php中没有with或let语句。 但是中提到的另一种方法也适用于php。这是一种老生常谈的回答,但是您的示例中没有保存一个键入字符,我相信这就是将与一起使用的全部意义。with语句也引入了歧义。是否要调用DOMDocument对象上的ge

最近,我发现了关于javascript的语言和语句

我对实现这里提到的东西很感兴趣,除了OOP风格的PHP

比如:


那么,PHP是否也有类似的功能,或者如何在PHP中实现这一功能?

不,PHP中没有with或let语句。

但是中提到的替代方法也适用于php。

不,php中没有with或let语句。

但是中提到的另一种方法也适用于php。

这是一种老生常谈的回答,但是您的示例中没有保存一个键入字符,我相信这就是将
一起使用的全部意义。
with
语句也引入了歧义。是否要调用
DOMDocument
对象上的
getElementsByTagName
,还是要调用同名的全局定义函数


至于
let
,PHP变量在默认情况下应用于它们所在的范围——您必须使用
global
关键字,这样不仅可以使它们在一般情况下全局可访问,而且可以在任何时候在另一个范围内使用它们(我建议不要使用它们)。有些人可能会说,如果和其他结构没有自己的作用域,那么这是PHP的一个限制,
在那里可能很有用,但是如果你想在其中一个结构中加入另一个变量,你可以单独声明它,或者将功能移动到一个函数作用域。

这是一个老生常谈的回答,但是在您的示例中,您没有保存一个输入字符,我相信这就是将
一起使用的意义所在。
with
语句也引入了歧义。是否要调用
DOMDocument
对象上的
getElementsByTagName
,还是要调用同名的全局定义函数


至于
let
,PHP变量在默认情况下应用于它们所在的范围——您必须使用
global
关键字,这样不仅可以使它们在一般情况下全局可访问,而且可以在任何时候在另一个范围内使用它们(我建议不要使用它们)。有些人可能会说,如果
和其他构造没有自己的作用域,那么这是PHP的一个限制,
let
在那里可能很有用,但是,如果您想在其中一个结构中使用另一个变量,您可以单独声明它,或者将功能移动到一个函数范围。

PHP没有
let
,但是您可以使用其他结构来完成同样的事情,尽管它要复杂得多

首先,我们希望我们能做的:(这不起作用)

echo';
$a=5;

对于(让$i=0;$iPHP没有
let
,但是您可以使用其他构造完成同样的事情,尽管它要复杂得多

首先,我们希望我们能做的:(这不起作用)

echo';
$a=5;

对于(让$i=0;$iNo,PHP中不存在这些语言结构。由于您没有发布任何代码,因此很难提出适合的建议。那么为什么不在您的问题中添加一些更具体的内容呢?无论如何……避免使用“with”不,这些语言结构在PHP中不存在。由于您没有发布任何代码,因此很难提出适合的建议。那么为什么不在您的问题中添加一些更具体的内容呢?无论如何……避免使用“with”
$builder = new markupbuilder();
with($markupbuilder){
    div(
        h1('A title...') . 
        p('This is ' . span('paragraph') . ' here.')
    );
}

// respectively
$builder->div(
    $builder->h1('A title...') . 
    $builder->p('This is' . $builder->span('paragraph') . ' here')
);
echo '<pre>';
$a = 5;
for (let $i=0; $i<10; $i++) {
    var_dump($i*$a);
}
var_dump('done looping');
var_dump(isset($i));
exit;
echo '<pre>';
$a = 5;
$loop = function() use (&$a) {
    for ($i=0; $i<10; $i++) {
        var_dump($i*$a);
    }
};
$loop();
var_dump('done looping');
var_dump(isset($i));
exit;