Req #70413 [Opn]: FR: support to new() keyword

From: Date: Wed, 02 Sep 2015 21:17:28 +0000
Subject: Req #70413 [Opn]: FR: support to new() keyword
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-195718@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70413&edit=1 ID: 70413 Updated by: cmb@php.net Reported by: david dot proweb at gmail dot com Summary: FR: support to new() keyword Status: Open Type: Feature/Change Request -Package: PHP Language Specification +Package: Scripting Engine problem PHP Version: Next Minor Version Block user comment: N Private report: N New Comment: Frankly, I can't see any real improvement with this new syntax. Previous Comments: ------------------------------------------------------------------------ [2015-09-02 20:48:13] david dot proweb at gmail dot com Description: ------------ It should works exactly like the new, but with some features. // Usage. new('\User'); === new User; new(User::class); === new User; new($user); === new $user; $user = new(User::class)->find(1); === (new User)->find(1); // Arguments. new(User::class, 1, 2, 3) === new User(1, 2, 3); // Maybe: use another object to copy directly the name. $userClass = new(User::class); $userNew = new($userClass); === $userNew = new(get_class($userClass)); Signature (pseudo-code): function new ($object, ... $args) { assert(is_object($object) || is_string($object)); assert(!is_resource($object)); if (is_object($object)) { $objectClass = get_class($object); return new $objectClass(... $args); } return new $object(... $args); } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=70413&edit=1

« previous php.bugs (#195718) next »