Php, ZipArchive deletes an empty file?

here is a little code I wrote:

file_put_contents('a.upl', '');
try
{
    $x = new ZipArchive();
    $x->open('a.upl');
}
catch(Exception $e)
{
    echo $e->getMessage();
}

it throws a ZipArchive::open(): Using empty file as ZipArchive is deprecated message, which is not surprising.
What suprising is, this a.upl file gets deleted, which is a little bit strange. Why does it do that? And how to prevent this “x-files, magic”?