PHP 5.3.1 传递引用问题

2023-03-07php开发问题
2

本文介绍了PHP 5.3.1 传递引用问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

好吧,这是一个奇怪的问题,所以请耐心听我解释.

Ok, this is a weird problem, so please bear with me as I explain.

我们将开发服务器从 PHP 5.2.5 升级到 5.3.1.

We upgraded our dev servers from PHP 5.2.5 to 5.3.1.

在切换后加载我们的代码,我们开始收到如下错误:

Loading up our code after the switch, we start getting errors like:

警告:mysqli_stmt::bind_param() 的参数 2 应为参考,值在/home/spot/trunk/system/core/Database.class.php 第 105 行中给出

提到的(105)行如下:

the line mentioned (105) is as follows:

call_user_func_array(Array($stmt, 'bind_param'), $passArray);

我们将该行更改为以下内容:

we changed the line to the following:

call_user_func_array(Array($stmt, 'bind_param'), &$passArray);

此时(因为allow_call_time_pass_reference)关闭,php抛出这个:

at this point (because allow_call_time_pass_reference) is turned off, php throws this:

已弃用:/home/spot/trunk/system/core/Database.class.php 中的第 105 行已弃用调用时传递引用

在尝试解决此问题一段时间后,我崩溃了并将 allow_call_time_pass_reference 设置为开启.

After trying to fix this for some time, I broke down and set allow_call_time_pass_reference to on.

这摆脱了 Deprecated 警告,但现在 Warning: Parameter 2 to mysqli_stmt::bind_param() 预计将成为参考 警告每次都抛出,有或没有引用.

That got rid of the Deprecated warning, but now the Warning: Parameter 2 to mysqli_stmt::bind_param() expected to be a reference warning is throwing every time, with or without the referencing.

我对如何解决这个问题毫无头绪.如果目标方法是我自己的,我只会在 func 声明中引用传入的变量,但它是一个(相对)本机方法 (mysqli).

I have zero clue how to fix this. If the target method was my own, I would just reference the incoming vars in the func declaration, but it's a (relatively) native method (mysqli).

有人遇到过这种情况吗?我该如何解决?

Has anyone experienced this? How can I get around it?

谢谢.

推荐答案

您正在传递一个元素数组 ($passArray).传递的数组的第二个项目需要是一个引用,因为那确实是您传递给函数的项目列表.

You are passing an array of elements ($passArray). The second item inside the passed array needs to be a reference, since that is really the list of items you are passing to the function.

这篇关于PHP 5.3.1 传递引用问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

PHP实现DeepL翻译API调用
DeepL的翻译效果还是很强大的,如果我们要用php实现DeepL翻译调用,该怎么办呢?以下是代码示例,希望能够帮到需要的朋友。 在这里需要注意,这个DeepL的账户和api申请比较难,不支持中国大陆申请,需要拥有香港或者海外信用卡才行,没账号的话,目前某宝可以...
2025-08-20 php开发问题
168

PHP通过phpspreadsheet导入Excel日期数据处理方法
PHP通过phpspreadsheet导入Excel日期,导入系统后,全部变为了4开头的几位数字,这是为什么呢?原因很简单,将Excel的时间设置问文本,我们就能看到该日期本来的数值,上图对应的数值为: 要怎么解决呢?进行数据转换就行,这里可以封装方法,或者用第三方的...
2024-10-23 php开发问题
287

mediatemple - 无法使用 codeigniter 发送电子邮件
mediatemple - can#39;t send email using codeigniter(mediatemple - 无法使用 codeigniter 发送电子邮件)...
2024-08-23 php开发问题
11

Laravel Gmail 配置错误
Laravel Gmail Configuration Error(Laravel Gmail 配置错误)...
2024-08-23 php开发问题
16

将 PHPMailer 用于 SMTP 的问题
Problem with using PHPMailer for SMTP(将 PHPMailer 用于 SMTP 的问题)...
2024-08-23 php开发问题
4

关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题
Issue on how to setup SMTP using PHPMailer in GoDaddy server(关于如何在 GoDaddy 服务器中使用 PHPMailer 设置 SMTP 的问题)...
2024-08-23 php开发问题
17