Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:92276 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 90098 invoked from network); 14 Apr 2016 07:50:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 14 Apr 2016 07:50:29 -0000 Authentication-Results: pb1.pair.com header.from=dmitry@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=dmitry@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 207.46.100.120 as permitted sender) X-PHP-List-Original-Sender: dmitry@zend.com X-Host-Fingerprint: 207.46.100.120 mail-by2on0120.outbound.protection.outlook.com Received: from [207.46.100.120] ([207.46.100.120:40541] helo=na01-by2-obe.outbound.protection.outlook.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id D4/E1-12455-2CB4F075 for ; Thu, 14 Apr 2016 03:50:28 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=RWSoftware.onmicrosoft.com; s=selector1-zend-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=el1gU625AnMDwfJE6SWX4ptRQbQ/zJp65e4Pidm7OOY=; b=sqa3UH4uoshXEkYN9IJJwwLVp5agC9DngI7OhBNfnm+v335snX+alvtzTHNKo8KXHk8mts1Q3FqOdiWbpj9EpKumwdJ2WWUK1PmVkLr03JYKEZ8i4+wtzTG0BvOXw1Qx9qvC7iJHb7+6z5SO5njsC3GMCE5YpvBV0KfX0e6sxAQ= Authentication-Results: lists.php.net; dkim=none (message not signed) header.d=none;lists.php.net; dmarc=none action=none header.from=zend.com; Received: from tpl2.home (92.62.57.172) by BLUPR0201MB1780.namprd02.prod.outlook.com (10.162.239.14) with Microsoft SMTP Server (TLS) id 15.1.453.26; Thu, 14 Apr 2016 07:50:21 +0000 To: Levi Morrison , internals References: Message-ID: <570F4BB4.6020709@zend.com> Date: Thu, 14 Apr 2016 10:50:12 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.1 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [92.62.57.172] X-ClientProxiedBy: DB5PR06CA0008.eurprd06.prod.outlook.com (10.162.165.18) To BLUPR0201MB1780.namprd02.prod.outlook.com (10.162.239.14) X-MS-Office365-Filtering-Correlation-Id: c29c6be7-0689-4d87-7718-08d364396e8e X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1780;2:1rm/wzy44IYXOqG2tVk9wFImGG/0Ebbc8+GuFb6/TU0V2angOSegd9xgKrM2kf/VdcBPrRAKjtIPUDntp/9Z4NJbZ9Dg3pPX0xbw6uIF/ba3KFoWRPgbjXxskuyHRk9U1HneOD40NMwILWGappsKCAzz/6YeLL0beISIsdv/k5kA3Ct77crIWuT1tF23n3aC;3:H5jLgNb0fiM74ABaq6zjBF/s1wZstpfQtH7mXeA8DhozmXX1Uxw9d4WwyJP9TZe5uRt3ZkDyR+IXGWusMkI3qbLZlH9Cg6V9a0rVkPlhmvUxG5oAk7+IZsD5QHnJtppC;25:Jbq9FlRxe7jzAmGYDA+Xrdji8aAytgttYCP1jBF+JBUSZWrOdPOkKyhxV/dpff1oF0FRMLG7ajI+6CnSXvsn5RqByXM8mI47GlRcEB861tFrcTmdJWDyIoLeS01R3XmalkgBg/sg6zX5lOpEGrr0M5s7QoGN5Otl7yelypnkRmQAGjMOwyhmdf6soYqdWRAkWnrhAjuFLuOdR14vrAx8BeDVZLZpXFEeCV3xD+Awzder2pIubbBpsw37iugkn6S4eYvLUEyyy3AATbrbf/AD33pXpz4CUdY51JNiFsJA8DFe+SqLWHV0LeZswH5p89WrL9MD1vvKw2G0oP6AzVMX0w== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1780; X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1780;20:5autDG2WJ9Pb1EsADg9Z9FvkMJS5QmUWTmG41DMS3E0FR6+ozbZTPOJ3BOBdPf/RMwME88O0Gght2RG1mdi4jwMGHmwwqbwbZBcePFDB3EK1V9pVnN08csDZ83/Up5C7OpeJCw3XmnZB9skUuJcO/cJDwdwLwUjErel2qTx0ypdcJhDS1w1eySJLrRld6/yYOctR8w14kNfosPxDuj44BqYrabsedmR5JQFIzLG4Zkz1d8Ya53UeVRbU2fosHMAVmPW8B4uJFHMREu8ZWKlexufZqP8VNvgPsZXMRe2wnQaiyTRZCrNZBgkgj0J07kXsJPb59PMLBN3gBUJGH+wCFDqfz9+yyq0lMIt+ewygZtTvDI+iZB237T52+yMtOa5SMyLeL+k2bDEDxZRPlxpNWZPc0kpfwP9rxOZXSL8DOAnkbz+Za2xlUuYnfNwoNkGB+Aixlb3xTVzaRmdw6t/MN4MkjGyZcNdCEzkZPQ1z8WUtHj7b3757iM9OWpJAE8E/;4:TvoRYqjAxDZwENJn7cfTGUn0apxZuFxL/9szMfkT1jSlQ59uOfrMPWrMKfHT+r8SjYD3wH3OMkd+9L/wXlE7pqWzqoKPt+XUSo29Bz9/D883pR67u+Ccdyb2SEMqUDx+0vFkra9XMY2SN+d3hYejhTjYj0VBPzpyTNx08lSrC5XmlOmdGWm/Y/In+zAKOdrnUrJ/FmwI/s8kNJKJyeEJYoMwsSNZJvDuIdl0xaIdYqncL5h5ZPyiEYsE7nTX/Ukh+r0yRLOhad5mYr3apDbTYqetfgJWBhVWa8M0Ie/3Y7hZjnhY/S6IZZGG4y7GsON5Nm6F67LwD7sY8q8GBqt5f3GuzlLhZq0wsmtwTNqKNa9Vc5kGsDnP2VKtEWoUlIID X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046);SRVR:BLUPR0201MB1780;BCL:0;PCL:0;RULEID:;SRVR:BLUPR0201MB1780; X-Forefront-PRVS: 0912297777 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(51414003)(24454002)(377454003)(86362001)(2950100001)(6116002)(3846002)(92566002)(586003)(50466002)(107886002)(64126003)(230700001)(19580395003)(4001350100001)(1096002)(5008740100001)(5001770100001)(189998001)(36756003)(81166005)(33656002)(42186005)(2906002)(47776003)(23676002)(87266999)(76176999)(65956001)(65806001)(50986999)(54356999)(66066001)(15975445007)(77096005)(5004730100002);DIR:OUT;SFP:1102;SCL:1;SRVR:BLUPR0201MB1780;H:tpl2.home;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTFVQUjAyMDFNQjE3ODA7MjM6a3ZjR3lUMSt1OVRxZmUwbmQwekltZGxT?= =?utf-8?B?TzRwbjlIL3N2WVpOS1VERXBJQ2t6dmdGSXdRUjRQOUR0NndsVURXcjBFL1Ir?= =?utf-8?B?QWZoVlpBTjlEYmY4eFB0QXVOaU84K0xlOWRUa0N6ejh3d0FjVk1BaHBTcEZx?= =?utf-8?B?ZzlXcXlKTzVKN05qRHBVSzJXTUREZitEa0pzRXJ6amxJazl4VGFmby9hejdD?= =?utf-8?B?M3JBeThmdUtmZm5vc3QvdVhkTXNYMEswWnB3cklBNHhETlltanZLUyt3dmh1?= =?utf-8?B?RjRhQ0c0VzZhakRwTndaTHFIZ1pmUkVUMnN0V2VaQ21hTnBBanozTDhQay9J?= =?utf-8?B?QlhOZkFHcGxsb3pwRkRaOWNrVFQ3MWIxa0FscVhXMWVSM1JzVm5BZVZQelMy?= =?utf-8?B?TWV6TU9BSnZKRXdWU09wYW5XaFAwRXo2aDBsbkpBL045OUx0WWtyZGJPNEpT?= =?utf-8?B?ZnBlc0RCWDJuenc5VGNZRVJablFvYWVJWTZCREZFcXhzQjlzWWZBZzAzUmJ5?= =?utf-8?B?ZlVQVDBkTVNFQnVIU3BzeXQ0eXN0QS9nU0IrVXdIQTlkc3d1dFdHZ2dXZWhT?= =?utf-8?B?TWcyNUlHWkNxSjdyVTFVdVlFTGZtUjFRNjB3M0dZK3VGZC9zeHUxZVRDK0tk?= =?utf-8?B?U2tyL2paV0thYWI1RWowc1VoNXhsWm5QVEtnUmRvOHIyNkZTR3AwK0tXVzlX?= =?utf-8?B?bUxZbTdTYTROcUVha3JSSmkvVTYxSDVUUm5PTUFXRGhUeFdzVkd0MkNNdFlI?= =?utf-8?B?ZTNWYWtyaWxmWmtmc1NXQ2U0blJmbHpDMFJPUE14MjI5TTFCMjg3WE9jeHJq?= =?utf-8?B?azBuNHB1R1FQRDUwaG5DalAzaXlVTjJiYzdDSU1SSU91djhEeHdySUZPaFVt?= =?utf-8?B?RERuTUo5WmdZUEZwemlzLzQ3S0phc2RJaVBKZ3ZKTWs1R1FMUkhFa0dZSnNn?= =?utf-8?B?NUZjd2tuaDhEUWV3RGg0cU5la0IrV2lSbEJtRXhpU1U0YTJqaExnUlJ1Ty9w?= =?utf-8?B?M0dFQjNwYjV3T2kvUzJueTNvVS8vR0pqWU00L1VrN3NwN2QxMGY3N0sxZ2dq?= =?utf-8?B?bjNrZEFnT2dISjVEZmxaMHRwZzEvb25hdjh5UDlLNmNRWDdJZFYrWDVaUU9k?= =?utf-8?B?MXFEMnRNeFpNNmM2djJtYkxqS1h2bUxYdktVNVl5clU5MEozMnVHNGoyVUg1?= =?utf-8?B?ZHBXV2tUakJZVXZORUhrVHpTYTBxWm5GZHNzeWxDUDQ0OGVOK2NkUUZOb1ZN?= =?utf-8?B?ZWZlMWFMbHRqWi9FbVZ0YTNLZU5hZlAybHFWRENkUStTNmJNWXZLOHF1YXA0?= =?utf-8?B?cy9peTZSS0NiQjdSWVh4RkRFN1JoNmRQZ1VjQVRhRUt0dVdMWXlEOUkyelA3?= =?utf-8?B?UGpSbnJDVXpZS1MwcXhMeHdYR1lGMHc1TUhVVDlnM3c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;BLUPR0201MB1780;5:xITH3VDqmDsxb25H4aKiV32qZpicekbeMJGqDQ4RvsFoHYmslhDOomxuN0ttY0KaVLkZqMO+6A9ZROKrFgBZn9zM7odZg1Ej1upA6DM2vuIs3Ll8gXf614/mQQoeHD/AbV3Sip2igaUXI4dLWLBCNQ==;24:aNQVQcHQgkCtUwFwcsch+/RnboYhOgD2vSjTwKq17/IQGi/QMp+VDk/edRTH4WycIF0evzyl7aYv75f/4brAfDf/QUq5exA7p6HrYvPsDOE= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: zend.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Apr 2016 07:50:21.3552 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0201MB1780 Subject: Re: [PHP-DEV] [RFC] Nullable Types From: dmitry@zend.com (Dmitry Stogov) On 04/14/2016 06:42 AM, Levi Morrison wrote: > As alluded to in an earlier email today[1] I am now moving the > Nullable Types RFC[2] to the discussion phase. In a nutshell this RFC > proposes syntax for declaring a type to alternatively be null. +1 The up to date implementation for return-type-hints may be found at https://github.com/php/php-src/pull/1851/files Implementation for argument-type-hints is really not a problem > > There is a decision that needs to be made: does the question mark go > before or after the type name? > > function (?Foo $foo); > function (Foo? $foo); > > There are precedents in several languages for each position. Some > relevant issues to where the question mark goes are noted in the > RFC[3]. It's better to use ? position before the type, to reduce fragmentation with HHVM. Thanks. Dmitry. > > I look forward to a helpful and meaningful discussion! > > [1]: http://news.php.net/php.internals/92252 > [2]: https://wiki.php.net/rfc/nullable_types > [3]: https://wiki.php.net/rfc/nullable_types#position_of >