Php 为什么输出不是字符串
我试了很多次,但我仍然不明白为什么输出不是字符串,有什么问题吗?帮我检查一下。最终输出应为大写名称字符串Php 为什么输出不是字符串,php,Php,我试了很多次,但我仍然不明白为什么输出不是字符串,有什么问题吗?帮我检查一下。最终输出应为大写名称字符串 <html> <p> <?php // Create an array and push on the names // of your closest family and friends $name = array(); array_push($name,"Mike"); array_push($name,"Jane"); array_push($name,
<html>
<p>
<?php
// Create an array and push on the names
// of your closest family and friends
$name = array();
array_push($name,"Mike");
array_push($name,"Jane");
array_push($name,"Jack");
array_push($name,"Nike");
array_push($name,"Ash");
array_push($name,"Chris");
array_push($name,"Zark");
// Sort the list
sort($name);
join(",",$name);
// Randomly select a winner!
$random = count($name,rand(0,7));
// Print the winner's name in ALL CAPS
$winner = strtoupper($random);
print($winner);
?>
</p>
</html>
此行指定$name
中的元素计数。我不知道除了这里的一个号码,你还想得到什么
你真正想要的是:
echo strtoupper($name[array_rand($name)]);
其他说明:
- 您对
join()
的调用没有做任何有用的事情,因为您没有对返回值进行任何操作
- 如果以后只是随机选取一个条目,那么对
排序的调用就没有意义了
- 为数组名称选择复数名称,以便知道它们是数组
$names
而不是$name
- 如果您提前知道所有数组元素,则无需使用
array\u push()
,只需使用数组文本:array('Mike','Jane',/*等*/)
- 如果要将数据输出到HTML上下文中,请始终使用
htmlspecialchars()
确保所有保留字符都正确转义。这里的代码没有问题,但只要您想输出$random=count($name,rand(0,7))代码>你想在这里做什么<代码>$random=$name[rand(0,count($name))]代码>可能就是你想要的。另外,删除join(',',$name)
行,因为它什么也不做代码>之后是所有那些array\u push
调用?为什么不$name=array('name 1','name 2',…)代码>即使如此:为什么不$name[]='addname'代码>?这至少避免了函数调用。几乎是逐字逐句地输入。看起来你确实知道他们希望得到什么。每次我读到array_rand并记住我手动完成相同任务的次数,这(你的答案)将减少大量代码;回答得好。
echo strtoupper($name[array_rand($name)]);