问题标签 [php-closures]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Slim 保护可调用对象
在 Slim 框架中,有一个protect
函数将可调用对象包装在一个函数中(即另一个可调用对象)。手册中的描述说:
如果你想将一个闭包作为原始值存储而不是调用它怎么办?你可以这样做:
查看源代码,我看到了这个:
我想知道这有什么意义。在这里我做了自己的测试:
这就是我得到的:
我可以调用$bar()
以返回可调用对象,但如果我可以使用,我为什么要这样做$foo
?有人可以解释一下这样做的目的吗?
php - Silex 服务 - $app 参数或“使用 ($app)”语句?
如果我在 Silex 应用程序中定义服务,我可以期望主容器(应用程序)作为参数传递,也可以使用“use ($app)”语句从当前范围获取它。
http://silex.sensiolabs.org/doc/services.html的官方文档有这个片段:
但它同样可以写成
我见过很多这样的代码示例。只是个人品味还是其中一个比另一个有好处,例如在性能、内存使用或代码隔离方面?
编辑: 我已经运行了“使用”与参数与简单函数的性能比较:
第一个是最慢的,但总体差异小于 25%。就像任何微优化一样,只有当你有成千上万个这样的优化时,它才会引人注目,因为最快和最慢之间的时间差约为 1/10,000,000 秒(100 万次重复为 0.05 秒)。
所以不应该考虑性能差异。
php - 您如何比较包含“闭包”的类?
那么,您如何比较包含 的类Closure
?看起来你不能。
php - 如何检查php中的闭包?
我有一个正在传递闭包的函数。我想找出派生闭包的方法的名称。当我调用 print_r 时,它会输出:
如何访问该侦听器值?我试过->static、::$static、getStatic(),我想不出任何方法来获得价值。
目前,我的计划是使用输出缓冲来捕获 var_dump 的输出。我不能为此使用 print_r,因为闭包包含对自身的引用和对象,并且 print_r 需要很长时间来处理递归。我也不能使用 var_export,因为它没有在输出中包含我想要的值。所以,这是我的解决方案:
这太可怕了。还有另一种方法可以做到这一点吗?也许使用反射?
php - 有没有办法从 php 闭包更新调用者范围变量
use
带有 php 闭包的关键字是将精选变量的范围扩展到闭包的一种非常清晰的方法。
如果我们需要从闭包更新调用函数作用域中某个变量的值,有什么办法吗?
在这里我总是得到 0。如何解决这个问题?
php - 传递参数时 PHP Altorouter 中的意外行为
设置
我正在访问这个网址:<host>/render/z63034/RBLR/GLZB
。
我的 url 模式是这样的:/render/[a:title]/[a:bpFrom]/[a:bpTo]
.
我的路线是这样添加的:
然后调用如下所示:
在我的index.php
(所有请求都被路由到的地方)中,avar_dump()
产生$match['params']
了预期的:
在我的render.php
(包括在内的)var_dump()
中$params
产生了意想不到的结果
问题
为什么只有我传递给的数组中的第一个元素call_user_func_array
实际传递(不是作为数组,而是作为值本身)?
php - Laravel 雄辩的 foreach 循环
我有一个遍历数组的 foreach 循环,并以雄辩的方式保存数据。当它像这样时它工作正常:
但是当我添加 if 条件时,我得到未定义的变量问题错误。
如果有人可以帮助我,将非常感谢,提前谢谢!
eloquent - 在 PHP 中将 Eloquent 模型作为闭包参数传递
我在 laravel 应用程序之外使用 Laravel Illuminate/Database。我试图将 Eloquent 模型作为我的闭包参数传递,但它抛出了一个错误。可能是我错误地传递了它。我的代码如下:
这是行不通的。SubjectModel 未在以下闭包中传递
谁能告诉我如何完成这项任务。
laravel-5 - Laravel 命令、Pthread 和闭包
一个特定的进程需要执行多个线程。我了解了 php 的扩展 - pthreads。
例如,在 Laravel 之外的一个简单脚本运行良好,我喜欢它的结果。我决定搬到 Laravel,并面临这个问题。当然我在google上搜索,在stackoverflow上发现了一些问题,其中回复了扩展的作者。但我没有帮他回答,所以我请你帮帮我。
已回答问题扩展作者。
有一个类 App\Commands\QuestionsParserCommand。在里面,我创建了 App\My\Questions\QuestionsParser 类的一个实例,并调用了方法 init()。然后是方法init()的代码:
ParserWorkers 类继承自 Worker,但有一个空方法 run()。
结果,我运行脚本并在 php 的日志中得到一条消息:
信息:Laravel 5.2.43、php 7.0.8、Windows
谢谢大家!
php - php require() 不识别别名类
所以这主要是由我的代码结构引起的:
文件1.php
文件2.php
... as
不知何故,使用后无法识别后面的部分require()
。