This is basically an idea I have for PHP to support a main entry point.
Where regardless of execution, if you run a PHP file, in CLI or Web
request.
If the file that is executed contains a main function, that is
automatically executed by the engine after any procedural code.

Any procedural code in the file, and included files are executed before
main(). I made this decision because there would be cases where developers
want to set up a global scope and variables.
The main entry function MUST be within the executed file, any included
files which contain a main function are treated as user functions.

main function signature: `function main(): int;` main must return an int
exit code.

Example
```php
echo "Before main";
function main(): int
{
    echo "Executed in main";
    return 0;
}
echo "After main";
return 1; // This is ignored as main() exists and its return value is the
exit code.
```

Expected output:
Before main
After main
Executed in main
PHP returns code 0

*Open questions.*

*1.* Should we add a declare(main_entry_point=true); for it to be opt-in
*2.* Should main() take arguments?
*3.* Should the main() be context aware? eg `main(array $argv, int $argc)`
for the CLI SAPI. I'm not sure what it would be for CGI SAPI.

Reply via email to