问题标签 [call-user-func-array]
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 - 从 mysqli stmt 查询返回一个数组
我正在尝试将站点转换为使用准备好的 mysql 语句,但是在替换fetch_array()
.
php.net 上的评论提供了一个我认为应该可行的解决方案,但由于某种原因,我在调用函数时遇到了奇怪的未定义常量错误,call_user_func_array()
有人可以提出更好的方法吗?
这是我目前正在使用的功能。我已经把它放在这里了(它是一个更大的类的一部分,它扩展了 mysqli 并处理错误捕获等),如果我在复制和粘贴它时犯了任何错误,我很抱歉。
我得到的错误是:
注意:使用未定义的常量 mysqli_stmt_bind_result - 假定为 'mysqli_stmt_bind_result'
致命错误:调用未定义的方法 mysqli_stmt::free()
php - 如何在 call_user_func_array() 中编写特定的模型方法作为回调?
我一直在尝试向 Codeigniter 中的函数发送动态数量的参数,并且遇到了 call_user_func_array 的问题。
我收到“未定义属性:Account::$callShowMessage”的一个错误让我想知道是否可以使用 call_user_func_array/CodeIgniter 引用另一个文件中的函数。
如果有人可以帮助我指出正确的方向,将不胜感激。
大批:
控制器摘录:
功能:
php - PHP 嵌套 call_user_func_array 和类
我有一个基于我正在使用的现有框架的复杂场景,这迫使我处理嵌套call_user_func_array
调用。我有一个具有两个功能的文件:
然后我有另一个文件,其中包含一个类和一些公共方法:
当我调用my_caller()
的新实例时MyClass
,它会调用their_caller
该实例,然后传递一个参数数组,其中包含对MyClass
(as $this
) 的引用以及方法my_callback
。
their_caller()
然后将请求转发给their_callback
并传递$options
。
我their_callback
可以调试$options[0]
并看到它是一个包含对MyClass
and的引用的数组my_callback
。
我调用get_class_methods()
它$options[0][0]
,their_callback
它会显示方法列表,但由于某种原因,它call_user_func_array($options[0], $options[1]);
不会调用my_callback
. MyClass
我什至可以打电话$options[0][0]->my_callback('HELLO');
,它的工作原理。
不幸的是,我无法修改their_caller
或their_callback
. 它们是框架的一部分。任何想法是什么阻止它工作?
php - 在类方法上使用 call_user_func
我正在尝试设置一个 PHP 方法,该方法传递一个对象及其方法名称,然后调用该对象的该方法。我试图在我的代码中限制字符串的使用,所以我想使用自定义枚举来做到这一点。但是,当我运行此示例时,这是我收到的输出:
获取测试
警告 call_user_func() 期望参数 1 是有效的回调,第二个数组成员不是第 43 行的有效方法
echo call_user_func(array($object, $method));
虽然它似乎打印出正确的方法,但它表示正在传递的方法不是有效的方法。我很困惑,因为我按照 PHP.net 上的教程进行操作
http://php.net/manual/en/function.call-user-func.php
在类的方法上使用 call_user_func 的正确方法是什么?请让我知道我错过了什么/做错了什么?
php - PHP中的函数不返回结果
我有一个来自 Mysql 的简单数据检索 PHP 文件,并以 JSON 字符串进行编码。下面的代码按预期返回结果
?>
示例结果...
我的目标是使用传递给 PHP 的变量并基于它的名称调用函数。我似乎无法弄清楚我做错了什么!
?>
这是输出...
php - 如何调用_user_func_array内部方法
我需要像这样正确运行:
其中对象名称、方法和参数是变量:
使用call_user_func_array
,或者也许有人知道替代方案。
php - PHP 5.5,无法让 call_user_func_array 与 bing_param 一起使用
我有 PHP 版本 5.5.9-1,并且在调用 stmt 的 call_user_func_array 和 bind_param 时遇到问题。我有以下代码
我收到以下错误,我不知道为什么
我尝试包装字符串“'s'”,但报告没有足够的参数。我究竟做错了什么?
谢谢
更新
我已经尝试了php5.3 中的代码 - mysqli_stmt:bind_params 带有 call_user_func_array 警告但仍然无法正常工作
php - 何时使用 call_user_func_array
我已经阅读了有关使用与仅调用函数的堆栈call_user_func_array
上的其他答案,但我仍然无法收集何时应该使用前者。call_user_func_array
我知道当您不知道传递了多少个参数时您可能想要使用,因此您可以这样做: $args = func_get_args();
...但是如果要在函数中使用参数,您是否总是需要知道参数?
以下两项工作,我假设第一项的开销较小。
对比
什么时候才能真正受益于使用call_user_func_array
?
php - 传递已经在变量中的数组时,调用_user_func_array“不起作用”与bind_param
我在此代码中使用 call_user_func_array 时遇到问题
使用 $txt 变量会导致 fetch_array() 出错:
在布尔值上调用成员函数 fetch_array()
但是,如果我在代码中创建数组,它可以正常工作。例子:
php - 检查 call_user_func_array 是否成功执行
可以使用动态调用函数或方法call_user_func_array
。如果调用本身失败,FALSE
则返回。此外,call_user_func_array
返回被调用的函数或方法的返回值。
因此,当被调用的函数或方法FALSE
也返回时(例如,参见 SO示例),该值将被识别为误报。
如何可靠地检查函数或方法调用是否成功执行call_user_func_array
?
编辑:人们倾向于指出is_callable
. 但这不是在调用方法之前检查方法是否存在,从而避免可能的错误。实际上在进行call_user_func_array
函数调用之前,它的参数和参数类型已经被验证使用Reflection
以避免大规模分配攻击。
文档提到了返回FALSE
值,但我看不到如何使用它来检查调用是否成功。