是否有可能做"如果文件存在然后追加,否则创建新文件"比这短

dav*_*rld 10 php

我有以下代码,但我试图将它缩短为一两行,因为我确定我对if的评估是不需要的,无论如何,下面的代码是否可以缩短为甚至是一条奇异的行?

 if(file_exists($myFile))
    {
        $fh = fopen($myFile, 'a');
        fwrite($fh, $message."\n");
    }
    else
    {
        $fh = fopen($myFile, 'w');
        fwrite($fh, $message."\n");
    }
Run Code Online (Sandbox Code Playgroud)

Dav*_*dom 52

if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
  fwrite($fh, $message."\n");
} else {
  $fh = fopen($myFile, 'w');
  fwrite($fh, $message."\n");
}
fclose($fh);
Run Code Online (Sandbox Code Playgroud)

==

if (file_exists($myFile)) {
  $fh = fopen($myFile, 'a');
} else {
  $fh = fopen($myFile, 'w');
} 
fwrite($fh, $message."\n");
fclose($fh);
Run Code Online (Sandbox Code Playgroud)

==

$fh = fopen($myFile, (file_exists($myFile)) ? 'a' : 'w');
fwrite($fh, $message."\n");
fclose($fh);
Run Code Online (Sandbox Code Playgroud)

==(因为a检查文件是否存在,如果不存在则创建它)

$fh = fopen($myFile, 'a');
fwrite($fh, $message."\n");
fclose($fh);
Run Code Online (Sandbox Code Playgroud)

==

file_put_contents($myFile, $message."\n", FILE_APPEND);
Run Code Online (Sandbox Code Playgroud)

...当然,file_put_contents()如果它是您在给定句柄上执行的唯一写入,则更好.如果你以后再打电话给fwrite()同一个文件句柄,你最好用@ Pekka的答案.


Pek*_*ica 15

嗯...为什么? a已经完成你需要的开箱即用.

仅供写作; 将文件指针放在文件的末尾.如果该文件不存在,请尝试创建它.