Php 参数上的索引未定义,无法定义

Php 参数上的索引未定义,无法定义,php,string,variables,Php,String,Variables,您好,我收到以下错误: 注意:未定义索引:$db_字段 这是因为我没有声明参数:$db\u field-调用此函数时: if (checkInField($webmailUserName,$db_connection,$db_con_table,"userName") == false) 第四位是一个清晰的字符串,PHP不像Java那样声明变量int、long、string等。所以我使用了echo$db_field,而且屏幕上的echo显示了“userName”,所以我认为它可以识别为字符串

您好,我收到以下错误:

注意:未定义索引:$db_字段

这是因为我没有声明参数:
$db\u field
-调用此函数时:

if (checkInField($webmailUserName,$db_connection,$db_con_table,"userName") == false)
第四位是一个清晰的字符串,PHP不像Java那样声明变量int、long、string等。所以我使用了echo
$db_field
,而且屏幕上的echo显示了“userName”,所以我认为它可以识别为字符串

我尝试了
echo$row[$db_field](不工作)

我尝试了
echo$row['db_field'](使用
指示字符串不起作用/如果我理解正确)

我尝试了
echo$row['userName'](此字符串有效)

但是,我可以使用
isset()
进行检查,但我不知道如何进行检查。其他带有我错误描述的帖子似乎与我想要达到的目标不匹配

请有人向我解释一下为什么
echo$row[]
不将
'$db_field'
识别为字符串,以及需要如何修复它。希望这也能帮助其他初学者

我使用的是PHP5.3,无法检查任何服务器ini,因为我的脚本使用的是域和Web服务器公司。()

关于
未定义索引的警告(又名通知):$db\u field
应该表明您正试图使用字符串
$db\u field
执行数组索引(如Java中的
Map.get()
)。(当您键入
“$db_field”
时,您希望它的计算结果为
用户名,但实际上并非如此。)

这是因为在PHP中,单引号字符串不同于双引号字符串。()

因此,与此相反:

echo $row['$db_field']; // indexing with the literal string $db_field
。。。使用:

echo $row[$db_field]; // if $db_field is numeric, acts like List.get(int); if $db_field is a string, acts like Map.get(Object)



关于前向声明变量:您的方法参数之一名为
$db_field
,因此在方法内部(而不是外部)引用该名称的变量是完全安全的。我认为您假定
未定义…
与变量本身有关,但事实并非如此。

您不应使用或链接到。它不是一个可靠的信息来源,我们不想鼓励使用它。看起来你没有遵循函数的相同顺序。条件的第一个参数是
$webmailUserName
,但函数本身的第一个变量是
$value
嗨,webmailUserName是作为值的表单字段。用户名是SQL数据库列,它是db_字段,最好叫它db_column John已经删除了引用,我只是想在坏帖子说有很多地方可以在线查看之前演示一下,我已经尝试过了。是的,这是正确的,我认为问题出在变量本身,双引号解决了这个问题。非常感谢。
echo $row[$db_field]; // if $db_field is numeric, acts like List.get(int); if $db_field is a string, acts like Map.get(Object)
echo $row["$db_field"]; // indexing with the string-representation of the variable named $db_field