PHP-显示不同值的同一变量
我正在从mysql中读取一些行来创建一组单选按钮。我需要写两次玩家的名字,第一次作为值属性,第二次作为文本。我不明白为什么相同的代码($players[$x])在输出html中产生两个不同的值。这是php代码:PHP-显示不同值的同一变量,php,Php,我正在从mysql中读取一些行来创建一组单选按钮。我需要写两次玩家的名字,第一次作为值属性,第二次作为文本。我不明白为什么相同的代码($players[$x])在输出html中产生两个不同的值。这是php代码: $players = readSqlFromMySql("select name from players"); for($x = 0; $x < count($players); $x++) { echo('<
$players = readSqlFromMySql("select name from players");
for($x = 0; $x < count($players); $x++) {
echo('<input type="radio" name="radio-choice-v-2" value="' .
$players[$x] . '" id="name-choice-' . chr(66 + $x) . '" ><label
for="name-choice-' . chr(66 + $x) . '">' . $players[$x] . '</label>');
}
$players=readSqlFromMySql(“从播放器中选择名称”);
对于($x=0;$x
这是呈现的输出html:
<input type="radio" name="radio-choice-v-2" value="<td style='width:150px;border:1px solid black;'>Amie</td>" id="name-choice-B">
因此,第一次,变量的输出是“td style=…”,第二次显示预期值(“Amie”)。发生什么事?是php吗?jquery?jquerymobile?我正在使用XAMPP
谢谢原始答案 警告:这个答案是错误的,因为有一个错误。无论如何,这个答案解释了所描述的现象可能发生的方式
如果
$players
是一个对象而不是数组,那么您所描述的内容是可能的
如果$players
是实现的类的对象,那么($players)
相当于调用方法$players->
`
此外,如果类也实现了,您可以像访问数组一样访问它。也就是说,$players[$x]
将等同于$players->
($x)
。该方法的实现可以做任何事情,包括在每次调用时返回不同的值
尝试以下操作,看看它是否确实是某个自定义类:
echo get_class($players);
还可以尝试以下操作:
var_dump($players);
你可以改天再讨论print\u r
vsvar\u dump
的优点
新答案 你说:
$players是一个数组,$players[$x]是一个字符串,两者均为预期值。但是,var_dump返回“string(57)Amie”。字符串(57)是我得到的意外代码的长度 如果返回代码,则将
$players[$x]
放置在属性值内。我们在渲染输出中发现的值的内部是:Amie
。这似乎就是你从$players[$x]
中得到的
如果我输入代码:
<?php var_dump("<td style='width:150px;border:1px solid black;'>Amie</td>");
但如果我说,它是这样写的:
string(57) "<td style='width:150px;border:1px solid black;'>Amie</td>"
字符串(57)“Amie”
这就是那里正在发生的事情。Amie的值实际上是“Amie”,但在浏览器中看不到。原始答案 警告:这个答案是错误的,因为有一个错误。无论如何,这个答案解释了所描述的现象可能发生的方式
如果
$players
是一个对象而不是数组,那么您所描述的内容是可能的
如果$players
是实现的类的对象,那么($players)
相当于调用方法$players->
`
此外,如果类也实现了,您可以像访问数组一样访问它。也就是说,$players[$x]
将等同于$players->
($x)
。该方法的实现可以做任何事情,包括在每次调用时返回不同的值
尝试以下操作,看看它是否确实是某个自定义类:
echo get_class($players);
还可以尝试以下操作:
var_dump($players);
你可以改天再讨论print\u r
vsvar\u dump
的优点
新答案 你说:
$players是一个数组,$players[$x]是一个字符串,两者均为预期值。但是,var_dump返回“string(57)Amie”。字符串(57)是我得到的意外代码的长度 如果返回代码,则将
$players[$x]
放置在属性值内。我们在渲染输出中发现的值的内部是:Amie
。这似乎就是你从$players[$x]
中得到的
如果我输入代码:
<?php var_dump("<td style='width:150px;border:1px solid black;'>Amie</td>");
但如果我说,它是这样写的:
string(57) "<td style='width:150px;border:1px solid black;'>Amie</td>"
字符串(57)“Amie”
这就是那里正在发生的事情。Amie的值实际上是
“Amie”
,但您在浏览器中看不到。的$players[$x]
的值是Amie
,这就是要打印的内容。第二个$players[$x]
位于标签标签内,您可能没有注意到
您可能尝试在浏览器上打印$player[$x]
,这就是为什么您没有看到它周围的td
标记。请检查浏览器输出的来源,并查看其中的内容
而且
Amie
的长度正好是57个字符;与您的打印输出相匹配。的$players[$x]
的值是Amie
,这就是要打印的内容。第二个$players[$x]
位于标签标签内,您可能没有注意到
您可能尝试在浏览器上打印$player[$x]
,这就是为什么您没有看到它周围的td
标记。请检查浏览器输出的来源,并查看其中的内容
而且
Amie
的长度正好是57个字符;与您的打印输出匹配。在循环之前尝试打印players变量,它会显示预期值。您可以发布打印的值吗?您的代码看起来很好。echo($players[$x])打印“Amie”no。请这样做。。提供打印(玩家);在循环之前尝试打印players变量,它会显示预期的值。你能发布打印的值吗..你的代码看起来不错..echo($players[$x])打印“Amie”no..像这样做。。提供打印(玩家)$players是一个数组,$players[$x]是一个字符串,两者均为预期值。但是,var_dump返回“string(57)Amie”。String(57)是我得到的意外代码的长度。我使用的是jquery mobile,因此echo()语句中的代码与输出不完全相同html@PabloMedinajQueryMobile是客户端,PHP是服务器端,jQueryMobile如何影响PHP?事实并非如此。现在,如果您有一些javascript代码(jquerymobile或非jquerymobile)正在修改页面,那就另当别论了。你需要。对了,懒我,我只是在上厕所