我想要完成的是根据我输入的数字显示星号或星号().例如,如果我输入2,表单将显示2个星号(*).在我的代码中,我不认为字符串连接不是正确的方法,因为我没有得到我想要的结果.我使用for循环.如果你能告诉我如何以正确的方式编码或者在这种情况下for循环是错误的,我将不胜感激.这是迄今为止的代码.
<?php
$number = $star = '';
if (isset($_POST['submit'])) {
$number = (int)$_POST['number'];
$star = '*';
for ($i = 0; $i < $number; $i++) {
$star .= $star;
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Star</title>
</head>
<body>
<!--Form-->
<form id="form" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<label for="number">Enter number</label>
<input id="number" type="number" name="number" size="3" maxlength="3" required>
<input type="text" readonly="readonly" value="<?php echo $star; ?>">
<input type="submit" name="submit" value="Display">
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
str_repeat()怎么样
$star = str_repeat("*", $number);
Run Code Online (Sandbox Code Playgroud)
使用您当前的代码,您将获得更多星号(如@AeJey的评论中所述),因为您从一个开始*,您加入它自己获取**,然后再次加入自己获得****...