我正在从MySQL
数据库中检索电子邮件列表,旁边是用户的ID,它是这样的
Array (
[0] => Array ( [ID] => 1 [Email] => email1 )
[1] => Array ( [ID] => 2 [Email] => email2 )
)
并且在尝试测试上次使用的电子邮件“email2”的值时使用了
end(end($array_sample));
这曾经在运行PHP
5.0的旧服务器上运行,并在运行PHP
5.6的新服务器上停止
我做错了什么或是php版本?
我基本上改变了整个方法,让网站做任何如何做的事情,但我仍然想了解end(end(array))
问题。
答案 0 :(得分:5)
"%windir%\System32\wevtutil.exe" im "%~dp0Manifest.man"
/rf:"%~dp0Manifest.dll" /mf:"%~dp0Manifest.dll"
函数需要通过引用获取数组,因此它不能是其他函数的结果,因为您会收到以下错误:
只应通过引用传递变量
为避免将内部end()
的结果分配给变量,然后对此变量使用end()
:
end()
由于$tmp = end($array);
$result = end($tmp);
设置为安静它们,您可能不会在以前版本的PHP
中收到任何错误。
在PHP 5.4.0之前 E_STRICT 未包含在 E_ALL 中,所以你 必须在PHP中明确启用这种错误级别< 5.4.0。
答案 1 :(得分:4)
据我所知,您的代码should had never worked:
只应通过引用传递变量
正如documentation所解释的那样:
这个数组是通过引用传递的,因为它被修改了 功能。这意味着你必须传递一个真正的变量,而不是一个 函数返回一个数组,因为只有实际的变量 通过引用传递。
更改的内容是错误的严重性。这是一个致命的错误,严格的标准通知和定期通知。 4.3.0和5.0.4之间只是默默地失败。
在升级并触发实际错误消息之前,很可能不会注意到错误。
答案 2 :(得分:1)
你在另一端有一个结束,内部的一个返回数组的最后一个元素,外面的一个期望数组不是单个值