【发布时间】:2019-04-08 17:27:07
【问题描述】:
$a = array("rob", "kate", "alex", "nick");
$q = (isset($_REQUEST["q"]) ? $_REQUEST["q"] : null);
$arr = explode(".", $q);
$output = array();
foreach ($a as &$value) {
if (substr($value, 0, strlen($arr[1])) === $arr[1])
我在这部分代码中得到一个未定义的偏移错误:
($arr[1])) === $arr[1])
$arr[1] 的两个,即使我已经定义了它们。
为什么我仍然会收到此消息?
错误信息:
注意:未定义的偏移量:第 10 行 D:\domain.php 中的 1
【问题讨论】:
-
向我们展示
$arr和$q的转储内容。 -
@koeneman 但它说的是“通知”而不是“错误”...?
-
@koeneman 这不会解决您的问题,而且是一个糟糕的主意。
@只是抑制错误。根据定义,通知是试图引起您的注意以通知您,因为某些事情无法正常工作。您最好的选择是解决问题,而不是掩盖或隐藏它。首先,请您提供我上面要求的转储信息(var_dump/print_r)。 -
您的问题是
$_REQUEST["q"]似乎没有设置。你在null上运行explode,所以稍后索引1未定义。 -
'那么我必须做些什么才能让它存在,因为它应该存在对吗?' - 我们不知道它是否应该存在,因为我们不知道'不知道这个脚本/应用程序应该做什么(我并不是说我们需要知道,因为问题应该是独立的)。