我正在尝试创建一个点击计数,每次点击按钮都会调用incrementClickCount()函数,该函数会将变量$count=0设置为静态,递增$count变量并显示它。我不明白为什么它不起作用。
<html>
<head>
<title>Click Counter</title>
<?php
if(isset($_POST['clicks'])){
incrementClickCount();
}
function incrementClickCount(){
static $count=0;
$count++;
echo $count . " and counting...";
}
?>
</head>
<body>
<form name="form1" method="POST" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="submit" name="clicks" value="click me!">
</form>
</body>
在代码中,当调用函数incrementClickCount()时,$counter总是设置为0并递增。。。您只需要声明$counter变量一次,并将其保存到某个地方,例如会话
对于那些正在为同样的问题而挣扎的人。这是我修复的代码。非常感谢那些帮助我的人。Zdenek Leitkep和Andrey建议使用会话。我在这里发现了如何使用它:http://php.net/manual/en/session.examples.basic.php
<html>
<head>
<title>Sessions: Click Counter</title>
<?php
session_start();
if(isset($_POST['clicks'])){
incrementClickCount();
}
function incrementClickCount(){
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
}else{
$_SESSION['count']++;
print $_SESSION['count'];
}
}
?>
</head>
<body>
<form name="form1" method="POST" action="<?php $_SERVER['PHP_SELF'];?>">
<input type="submit" name="clicks" value="click me!">
</form>
</body>
</html>