我正在尝试创建一个计算它被调用次数的函数
这是我的代码:
<?php
function print_calls() {
count(print_calls);
}
print_calls();
?>
我希望它显示调用该函数的次数,如
print_calls(); // 1
print_calls(); // 2
print_calls(); // 3
答案 0 :(得分:2)
这样的东西?
<?php
function callCount(){
static $calls=0;
echo $calls++;
}
callCount();
?>
答案 1 :(得分:0)
您可以使用静态变量:
function print_calls() {
static $callCount=0;
printf("%d\n", ++$callCount);
}
请注意,这只会保留当前进程的计数,因此如果您在Web服务器中使用此计数,则会为您访问的每个页面重置计数。如果需要持久计数,则必须将其写入文件或使用$_SESSION
变量。
答案 2 :(得分:0)
全局变量可能很危险。小心翼翼。
您可以将变量定义为计数器和使用该外部变量的函数。
php > $counter = 0;
php > function ciao() { global $counter; $counter++; echo $counter; }
从现在开始,......每次调用该函数时,它都会打印变量递增的变量。发生这种情况是因为$counter
的范围不是函数的本地范围,而是文件的全局范围。
php > ciao();
1
php > ciao();
2
php > ciao();
3
php > ciao();
4
php > ciao();
5