【发布时间】:2016-09-02 14:29:04
【问题描述】:
flock() 函数是否仅在与执行代码相同的方法中使用时才有效?
比如下面的代码,加锁成功:
public function run()
{
$filePointerResource = fopen('/tmp/lock.txt', 'w');
if (flock($filePointerResource, LOCK_EX)) {
sleep(10);
} else {
exit('Could not get lock!');
}
}
但是,在下面的代码中,锁是不成功的:
public function run()
{
if ($this->lockFile()) {
sleep(10);
} else {
exit('Could not get lock!');
}
}
private function lockFile()
{
$filePointerResource = fopen('/tmp/lock.txt', 'w');
return flock($filePointerResource, LOCK_EX);
}
我没有看到任何关于此的文档,所以我对这种行为感到困惑。我使用的是 php 版本 5.5.35。
【问题讨论】:
标签: php methods file-locking flock