PHP不能将标量用作数组警告问题


PHP cannot use a scalar as an array warning issue

我的网站上有一个问题,我做了一个点击计数器:

$count = ("hits.txt"); 
$clicks = file($count);
if ($clicks > 5){$clicks = 0;}
$clicks[0]++;
$fp = fopen($count , "w");
fputs($fp , "$clicks[0]");
fclose($fp);

但我收到了这样的消息:不能使用标量作为数组警告问题

Woah-我不知道你的代码中发生了什么。

  • 为什么你的字符串在括号中 它有效,只是很奇怪
  • 为什么在单个条件行上使用括号 您可以跳过括号
  • 当数组是一个变量时,为什么要用引号括起来 如果它是一个变量,不要引用它
  • 为什么使用file读取文件而不是简单的文件读取器 使用fopenfile_get_contents或其他解决方案,只需从文本文件中读取一个数字

您的示例可以很容易地改写为以下内容:

<?php
    $count = (int)file_get_contents("hits.txt");
    file_put_contents("hits.txt", ($count > 10 ? 1 : $count + 1));
?>