簡體   English   中英

簡單的PHP計數器/ if else語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM