gpt4 book ai didi

php - PHP 中的花括号表示法

转载 作者:行者123 更新时间:2023-11-30 23:01:04 25 4
gpt4 key购买 nike

我正在阅读 OpenCart 的源代码,我在下面遇到了这样的表达。谁能给我解释一下:

$quote = $this->{'model_shipping_' . $result['code']}->getQuote($shipping_address);

在声明中,有一个奇怪的代码部分是
$this->{'model_shipping_' . $result['code']}
其中有 {},我想知道那是什么?在我看来它是一个对象,但我不太确定。

最佳答案

大括号用于表示 PHP 中的字符串或变量插值。它允许您创建“可变函数”,这可以让您在不明确知道函数实际是什么的情况下调用函数。

使用它,您可以像创建数组一样在对象上创建属性:

$property_name = 'foo';
$object->{$property_name} = 'bar';
// same as $object->foo = 'bar';

或者如果您有某种 REST API 类,您可以调用一组方法中的一个:

$allowed_methods = ('get', 'post', 'put', 'delete');
$method = strtolower($_SERVER['REQUEST_METHOD']); // eg, 'POST'

if (in_array($method, $allowed_methods)) {
return $this->{$method}();
// return $this->post();
}

它也用在字符串中以更容易地识别插值,如果你想:

$hello = 'Hello';
$result = "{$hello} world";

当然,这些都是简化的。您的示例代码的目的是根据 $result['code'] 的值运行多个函数之一。

关于php - PHP 中的花括号表示法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com