【发布时间】:2012-05-07 23:09:43
【问题描述】:
我正在做一些 PHP 编程并且有一个问题:如何在 PHP 脚本首次运行时加载 PHP 函数,并且仅在首次运行时加载?
谢谢
【问题讨论】:
标签: php
我正在做一些 PHP 编程并且有一个问题:如何在 PHP 脚本首次运行时加载 PHP 函数,并且仅在首次运行时加载?
谢谢
【问题讨论】:
标签: php
您可以使用锁定文件
$lock = "run.lock" ;
if(!is_file($lock))
{
runOneTimeFuntion(); //
touch($lock);
}
编辑 1
一次性函数
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
runOneTimeFuntion ();
function runOneTimeFuntion() {
if (counter () < 1) {
var_dump ( "test" );
}
}
function counter() {
static $count = 0;
return $count ++;
}
输出
string 'test' (length=4)
【讨论】:
每次你启动 php 脚本时,他都会作为一个新脚本启动,无论它之前被调用了多少次。
如果您知道在 PHP 中禁止重新声明函数,请使用以下方法从外部文件加载函数:
<?php require_once(my_function_file.php); ?>
如果您希望 scrpt 记住他之前是否被调用过,可以使用某种形式的日志记录(数据库\文件)并在加载之前对其进行检查...但我看不出有任何理由以防万一函数加载...
【讨论】:
或者使用普通的布尔值...
$bFirstRun = true;
if( $bFirstRun ) {
run_me();
$bFirstRun = false;
}
【讨论】:
有一个名为function_exists的PHP函数
你可以在这个函数中定义你自己的函数,然后你就可以看到它是否存在。
if (!function_exists('myfunction')) {
function myfunction() {
// do something in the function
}
// call my function or do anything else that you like, from here on the function exists and thus this code will only run once.
}
在此处阅读有关 function_exists 的更多信息:http://www.php.net/function_exists
【讨论】: