Req #74362 [Wfx]: Make echo and print equivalent

From: Date: Mon, 03 Apr 2017 03:52:39 +0000
Subject: Req #74362 [Wfx]: Make echo and print equivalent
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-208289@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=74362&edit=1 ID: 74362 Updated by: pollita@php.net Reported by: olafvdspek at gmail dot com Summary: Make echo and print equivalent Status: Wont fix Type: Feature/Change Request Package: Scripting Engine problem PHP Version: Irrelevant Block user comment: N Private report: N New Comment: True about the difference being slightly larger, but as far as the original question goes: Yes, we could allow print to accept multiple arguments. For that matter we could make echo return a value. Neither is going to break anything[citation needed], and due to the way the compiler handles both statements, neither will perform worse (fun fact: the compiler turn both into ZEND_ECHO opcodes, just with a different extended_value which it doesn't even use). Should we? It'd be a grammar change, so you'll need an RFC and a 2/3 vote in favor of it. Without a compelling reason, I doubt you'll get that. Previous Comments: ------------------------------------------------------------------------ [2017-04-02 15:33:01] bwoebi@php.net Small example: foo(print 1, 2); ^ is 2 a second argument to print or to foo? That's ambiguous, hence we do not allow that. ------------------------------------------------------------------------ [2017-04-02 13:22:05] olafvdspek at gmail dot com > That's not the only difference, OK, so the documentation is wrong too? @dm: sure, but that doesn't mean print couldn't support multiple arguments does it? ------------------------------------------------------------------------ [2017-04-02 13:03:11] dm@php.net print has a return value along with outputting and can be used as e.g. return print json_encode(...); while echo can not. ------------------------------------------------------------------------ [2017-04-02 12:45:54] kelunik@php.net That's not the only difference, the return types also vary. "echo" is "void" while "print" returns "int". ------------------------------------------------------------------------ [2017-04-02 12:42:39] olafvdspek at gmail dot com Description: ------------ Could print be made equivalent to echo such that it accepts multiple arguments? > The only difference to print is that echo accepts an argument list. > The only difference to echo is that print only accepts a single argument. http://php.net/echo http://php.net/print Test script: --------------- <?php echo('A', 2, 'C'); print('A', 2, 'C'); Actual result: -------------- - ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=74362&edit=1

« previous php.bugs (#208289) next »