newQuery(); 我以前从未见过使用“with”,也无法在 PHP 文档中找到它。我猜“wi-6ren">
gpt4 book ai didi

php - "with"在 PHP 中有什么用?

转载 作者:可可西里 更新时间:2023-11-01 13:10:15 25 4
gpt4 key购买 nike

我在 Eloquent ORM 库中遇到过这一行:

return with(new static)->newQuery();

我以前从未见过使用“with”,也无法在 PHP 文档中找到它。我猜“with”是大多数搜索中的停用词,所以我什至没有接近。

在多年的 PHP 编程中从未遇到过“with”,我觉得自己错过了。它有什么作用?我确实遇到过一个关于 ORM 的评论,其中提到“with”在 PHP-5.4 中不再需要,但正如所说的那样。如果这是准确的,那么最好知道 PHP-5.4 的等价物是什么。

更新:支持答案的详细信息:-

我在 Laravel 的 Immuminate/Support/helpers.php 帮助脚本中找到了这个帮助函数:

if ( ! function_exists('with'))
{
/**
* Return the given object. Useful for chaining.
*
* @param mixed $object
* @return mixed
*/
function with($object)
{
return $object;
}
}

如一些答案中所述。该全局范围函数允许在一条语句中创建对象并在 t 中运行方法。它(以某种方式)在安装 Laravel 时在 composer autoload_files.php 脚本中注册,因此它会在每个页面上加载,即使它不包含任何类。

谢谢大家。不要假设一切都必须现代框架中的命名空间类。

最佳答案

这个函数看起来像这样:

function with($obj) { 
return $obj;
}

它是 new ExampleObj()->newQuery() 的更短版本和更易读的版本。with 函数不是用 PHP 构建的。它适用于比 PHP 5.4 更旧的版本。正如 @Rocket Hazmat 在 PHP 5.4+ 中指出的那样,您可以只执行 new ExampleObj()->newQuery(),因此此处的 with 函数允许您保持可读的向后兼容性。

关于php - "with"在 PHP 中有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910452/

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