Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:110102 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 6380 invoked from network); 9 May 2020 19:42:50 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 9 May 2020 19:42:50 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 466B91804FD for ; Sat, 9 May 2020 11:18:49 -0700 (PDT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS2639 136.143.188.0/24 X-Spam-Virus: No X-Envelope-From: Received: from sender4-op-o11.zoho.com (sender4-op-o11.zoho.com [136.143.188.11]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Sat, 9 May 2020 11:18:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589048326; cv=none; d=zohomail.com; s=zohoarc; b=WBg7qC2AQ44xjABEknSO/rFho0yio7GBoLeDKjl7dEs2wY2Wk8dShkoG8mG1LZTM1h/NSu4VVH3+Mcw7/xrFJ3YE9aTJBRr80uWX8SOvG2TP77+tLEOQcZVWcC+WQ3bFWTqlgXPCyIfl3p+CgmTvzooQIj+jMr/F4QuWCnkG2oc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1589048326; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:MIME-Version:Message-ID:References:Subject:To; bh=rFigRXecvZ06YbsWSq2m21RaeqPPqOLpEZfeE6E1S3o=; b=OzR5lgcbYC9gXyudhQ4qk5JmcKCiECJcr+clBpxvQvl3SzqfzoXZ1pQnQJ0h0Ew/qLeKhM1cfbDubyT9nNIfRvSDusssSr/9NGlwfsF5AufT0N4masknWK/L6qdKhHYeOtwGeYjNTiNugELUt+b0iuo2PNZQXi10xHBGDwXfrSY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass header.i=manuelcanga.dev; spf=pass smtp.mailfrom=php@manuelcanga.dev; dmarc=pass header.from= header.from= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1589048326; s=zoho; d=manuelcanga.dev; i=php@manuelcanga.dev; h=Date:From:To:Cc:Message-ID:In-Reply-To:References:Subject:MIME-Version:Content-Type:Content-Transfer-Encoding; bh=rFigRXecvZ06YbsWSq2m21RaeqPPqOLpEZfeE6E1S3o=; b=WIm9Q5UBl9bt4BFGUXexGO70dLspD7AgemdjBCSaDpaam3PMRFK/IHCu5l4S7k4/ FYyFlEIZDRlI2l+LFOrpnHKERXNIG8WJKW9Ye0u1ObjDhrZmQVjamT/fMbghqoAIgU2 3UUGuGu9QMCFDw3r5xGMtSuZCOZIfsYYfjTYmGWo= Received: from mail.zoho.com by mx.zohomail.com with SMTP id 1589048294659984.2571715127941; Sat, 9 May 2020 11:18:14 -0700 (PDT) Date: Sat, 09 May 2020 20:18:14 +0200 To: "Levi Morrison" Cc: "Dan Ackroyd" , "Rowan Tommins" , "internals" Message-ID: <171faa8bd01.1212a57bc609801.3207343136239923022@manuelcanga.dev> In-Reply-To: References: <171dee3baf3.bef5753260554.3262181919550021853@manuelcanga.dev> <171e05b4ced.1041f31b5124598.4028595156690203917@manuelcanga.dev> <10faa29f-f08f-a73e-b76d-683f5abbee86@gmail.com> <171f30b0df0.102b810be444185.2462173785894899100@manuelcanga.dev> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Importance: Medium User-Agent: Zoho Mail X-Mailer: Zoho Mail Subject: Re: [PHP-DEV] [RFC] Keep type of reference params From: php@manuelcanga.dev (Manuel Canga) ---- En vie, 08 may 2020 15:31:52 +0200 Levi Morrison escribi=C3=B3 ---- > I think changing reference is a bad idea, even if it's behind some > sort of declare or ini setting or what-have-you. >=20 > I do support `inout`, which has similar high-level outcomes: the > current value is fed in, and when the function returns it has a new > value. I think we should use `&` at the call site, and we should also > permit it optionally for by-ref parameters as it provides a migration > path: first add `&` to all the call sites, then switch it to `inout`. =20 Hi, Levi, Thanks for your opinion. Why don't reverse mode ?.=20 'inout' is created with the three characteristics: =20 - Check type of out is equal to type of param - Avoid modifying caller variable value when the function throws an excepti= on. ( Like inout of Hacker language ) - Allow explicit call-site pass-by-reference annotation.=20 Then, current references are deprecated and after than, in other version, t= hey are removed. In this way, projects can be adapted gradually Regards -- Manuel Canga