Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:103188 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 88661 invoked from network); 20 Sep 2018 01:10:40 -0000 Received: from unknown (HELO mail-wr1-f48.google.com) (209.85.221.48) by pb1.pair.com with SMTP; 20 Sep 2018 01:10:40 -0000 Received: by mail-wr1-f48.google.com with SMTP id 20-v6so7212930wrb.12 for ; Wed, 19 Sep 2018 14:17:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=2gRS87mNKenmF7sodG4yotUuP5W/fis7s7CGPY16mbQ=; b=NMGh006f5f9P7MYA6SQOLCNNGTkCx5jlBW9hg72srlSbdi9sRI0NhOvPYgRjaa9GBR 93n3KqTMQ4c9i0JNWYoTSujSB060EjfaHv0XCoLR4GXYteYfgJSldihWTU5jpGo+7AWQ 50y9pLyeAZ2OvzGjCweSuQmi2L3PfAbyUwJCpl34XmTiorumHEv0nrtrp905tyQFenk1 C9gRPkQoTuGkfyza4Sjypdlx21rTCVt6zKSeCBQbi1VX2mcaAWAMI4gPV10ppcwR+jp8 BQhGFDuvQRBplMIWdFXQNvdQOxnQun++HmNDrlnuFwYGzfESJVojHyFPbIr6b1z7ut2z aO1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=2gRS87mNKenmF7sodG4yotUuP5W/fis7s7CGPY16mbQ=; b=smBWMTPSG87o0dveu9Ryrb95rUTJPsunWd4MrJ+0wf4YDom+Gw+040XLdgu8SrN3z/ TX//sV50bqyxwgjIULAcrDHIgXkN1GvqkIf58itQR50J1+Y1IPD94Xjo+JdLnJ7NdrkK Q9vJKsoEyMC84wQgBdsTaRZFLN+UGPpn652Hra1ivqknq/w8+1rQ9Suwo5aWtPtEB4Vj fVhmKA7PpfbWiAGuq/S9D3QRbfSLecfwSz2T6IDxsH+I1ePVdGD4CHzeMv0uILscOIow rBXb621zOt9Ch+FmsTXSxVFoB0QthpbJdmAfYRajBxj2waWAvmWHp7g2Qmmxp7kwwQvj kx+w== X-Gm-Message-State: APzg51Bl0XFN6o70p2K9qB7n52wetRYegqIJR4/ePQXYfeFAQbQeej21 MmMJ60ktPcbHVW9NGgu1uDL36mEO X-Google-Smtp-Source: ANB0VdZ56hm6m3EEAf0Wq/jMe2wRRXOFRCAzTsl3oFfCaSvCiWwG0A5iJwDjlXVYEH8uOgfCLzCmww== X-Received: by 2002:adf:e5c4:: with SMTP id a4-v6mr30916502wrn.190.1537391827080; Wed, 19 Sep 2018 14:17:07 -0700 (PDT) Received: from [192.168.0.14] (cpc84253-brig22-2-0-cust114.3-3.cable.virginm.net. [81.108.141.115]) by smtp.googlemail.com with ESMTPSA id h17-v6sm18934036wrq.73.2018.09.19.14.17.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 19 Sep 2018 14:17:06 -0700 (PDT) To: internals References: Message-ID: <239cea65-a832-29a5-11e5-ee721e3bd957@gmail.com> Date: Wed, 19 Sep 2018 22:17:05 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Subject: Re: [PHP-DEV] [RFC] [VOTE] Typed properties v2 From: rowan.collins@gmail.com (Rowan Collins) On 19/09/2018 21:04, Levi Morrison wrote: > I think this code should be allowed: > > class User { > public int $id; > public string $preferred_name; > public string $username; > } Why? What contract is being enforced by that class that is not enforced by this class? class User { public ?int $id=null; public ?string $preferred_name=null; public ?string $username=null; } Both require the consumer of the class to trust that someone, somewhere, has initialised the fields (and not subsequently unset them). Or have I misunderstood what you intended with that example? Regards, -- Rowan Collins [IMSoP]