[英]Simple PHP hit counter / if else statement
我正在嘗試創建一個點擊計數器,一旦它達到一定數量(在本例中為5),它將不再顯示點擊量。 這是我的代碼:
<?php
$count = ("hits.txt");
$hits = file($count);
$hits[0] ++;
$fp = fopen($count , "w");
fputs($fp , "$hits[0]");
fclose($fp);
if ($hits > 5) {
echo "More than 5 hits";
}
else {
echo $hits[0];
}
?>
我究竟做錯了什么?
您使事情變得過於復雜。 這樣會更容易:
$hits = file_get_contents('hits.txt');
++$hits;
file_put_contents('hits.txt', $hits);
if($hits > 5) {
echo 'Over 5!';
}
// else etc
對於您當前的代碼,問題在於您沒有使用正確的語法$hits[0]
(已經在fputs
使用過)來測試匹配數,而是使用了錯誤的$hits
。 請記住,由於file
工作方式, $hits
本身是一個數組。 PHP會很樂意讓您將數組與整數進行比較,並且有一些規則定義了比較的工作方式 ,但是不要去做。
您需要$hits[0] > 5
:
if ($hits[0] > 5) {
echo "More than 5 hits";
}
將數組值$hits
與數字5比較時,將其作為字符串Array
而不是數組第一項的值進行比較。 字符串Array
始終大於5。
或多或少的一切。 除了其他答案之外
fputs($fp , "$hits[0]");
將無法按預期工作,您需要"{$hits[0]}"
或$hits[0]
(無引號)。
也就是說,如果您不關心並發訪問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.