Bug #75850 [PATCH]: Unclear error message wrt. __halt_compiler() w/o semicolon

From: Date: Mon, 25 Jan 2021 16:19:41 +0000
Subject: Bug #75850 [PATCH]: Unclear error message wrt. __halt_compiler() w/o semicolon
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-231764@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=75850&edit=1 ID: 75850 Patch added by: cmb@php.net Reported by: anrdaemon at freemail dot ru Summary: Unclear error message wrt. __halt_compiler() w/o semicolon Status: Verified Type: Bug Package: PHAR related Operating System: unrelated PHP Version: 7.1.13 Assigned To: cmb Block user comment: N Private report: N New Comment: The following pull request has been associated: Patch Name: Fix #75850: Unclear error message wrt. __halt_compiler() w/o semicolon On GitHub: https://github.com/php/php-src/pull/6638 Patch: https://github.com/php/php-src/pull/6638.patch Previous Comments: ------------------------------------------------------------------------ [2018-01-20 09:40:59] requinix@php.net ?> does imply ; however the Phar stub docs http://php.net/manual/en/phar.fileformat.stub.php require "that it conclude with __HALT_COMPILER();". Indeed, Phar internally looks for that exact (case-insensitive) string. This could be a request to support dropping the semicolon, but changing the message is certainly easy enough. ------------------------------------------------------------------------ [2018-01-20 09:21:45] anrdaemon at freemail dot ru Description: ------------ Unable to use stub with "?>" token present but ";" omitted after __halt_compiler(). According to PHP parsing rules, "?>" implies ";". (In other words, the stub itself executes cleanly, which makes it extra hard to realize the source of confusion.) At the very least, the error message could be clearer. Test script: --------------- <?php (new Phar("test.phar"))->setStub("<?php __halt_compiler()?>"); Expected result: ---------------- A test.phar example created. Actual result: -------------- PHP Fatal error: Uncaught PharException: illegal stub for phar ".../test.phar" in .../case2.php:3 Stack trace: #0 .../case2.php(3): Phar->setStub('<?php __halt_co...') #1 {main} thrown in .../case2.php on line 3 ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=75850&edit=1

« previous php.bugs (#231764) next »