Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:126772 X-Original-To: internals@lists.php.net Delivered-To: internals@lists.php.net Received: from php-smtp4.php.net (php-smtp4.php.net [45.112.84.5]) by qa.php.net (Postfix) with ESMTPS id 199A81A00BC for ; Fri, 14 Mar 2025 23:36:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=php.net; s=mail; t=1741995227; bh=9l1vaTgr/TQOECqQ3ZkSn9yGUOWyjMq1wKUfd8IbLOM=; h=Date:Subject:To:References:From:In-Reply-To:From; b=k2mVEpsx5vTLLCl+zZ4LCPH/yH3VjoLKgZmYlCIEcHWf6ZznBIJnGEQ63oY3XL22l /i+7ewinRRBVjpYr5EbY2omaq4dZXWH9+vIZ0Mh8Fe7pLT9cYknfRCCLCcUj2YvBrg 8t2kPu/7sbqB2EUuBfO64LFC/+Gsr3uAw87GcqYgIRXI5BqqPHUhxqGyD79ZS//9P9 CpXtdDag4gl41bWQ0MBFwv2ebEBExL30/+yQbPY5dmCH1oYxK8pdlEgV9JeHtmR5XD P6VGrjgW2GszP+I8iKZMcQ1LSMyduNONHDWfMb35N6wknUrFbOk+A3AU6Bsq1gBxUQ nKcrpTlsXUxlw== Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 39FF6180072 for ; Fri, 14 Mar 2025 23:33:45 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 4.0.0 (2022-12-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-3.6 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,DMARC_PASS, FREEMAIL_ENVFROM_END_DIGIT,FREEMAIL_FROM,RCVD_IN_MSPIKE_H2, SPF_HELO_PASS,SPF_PASS autolearn=no autolearn_force=no version=4.0.0 X-Spam-Virus: No X-Envelope-From: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2034.outbound.protection.outlook.com [40.92.90.34]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (secp384r1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Fri, 14 Mar 2025 23:33:44 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=IkGdzPnR67kMUnpPaEC/AAUnEE1hsLJfKxa9RukY4wAZeVOuR518YXQXLgQkU0sxOhNTJmTap0cdBNK6mu+mmS/XfbqkCMbTOC8LUrmtOB0RvRSywpbsLyHT1xfsbf5dZLw/FcSBWWnTyqJLfb5CMGYAdbIiSwU2Tc/POYJDOLDrdRBZXL5yk78lOK/mPD55hD+8C/YzQd3IZ9JEq3vkjjnv3oVANj/9s0Ro4RsdCLThGMMnpUv+SB2e359nb6O/F8OuGYxjZOe2F79JppHCsFyp6J16ykyfu5D/U4+cjBSry9sHZ1Cb2UI7VosPZWRN+81T7Vz5hg4TW28ZYaJ3DA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=4FWfqRa76zCQBnKutssKFAjWYnqrGkHbJAK6R4fRxFg=; b=cdWGK2wKg3naz5epR4jFahz7tG2QgUcPN4zmKywBGkjR4S12JcpHJl8fcaKF4LTv7im+LtmU9oEX+z5FW4KxopLai2brphpht2EugbYgiIzZpwbjPhJ7Y9VkFTP+FHoZH3C+CHWjo4r2GYMFQ+6gb4Qp9dXVTgBuGFtwUBTCAC+euv1MZ9FuWNKiECaw4nFCOOy7Knp84srlwZJOeTHuLF8guRfk9ogFcLTNYHw6Jt6VMy3CO4v3qyOB12+ALeJ8eQMFWkTubidIombC9qJPm+X0dCstJyiZuTeGicQ/36TBCOW7ZndHAg+V1dXS/au9v1PzL3NrAm+bH7Du5RTpJg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hotmail.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4FWfqRa76zCQBnKutssKFAjWYnqrGkHbJAK6R4fRxFg=; b=LOTmFQ0Wqi52Ng4YrKaK4tySnqqx3nlmckZTYiPu+E8z9NAJTBRs6oPzpIS8q4XqsNtsXv+9d9M++QFnHndvYb5s1Cr3HF3Iu7xl0sHKvYudmJ2DAhO/Bb7ggal53K0qL8RKvuaurcoln+fnjMjShmirQ/K6JTubSSiPvYHZHofdr6hU1FqoGl726o6scE34inJinLELSf4G2KlW37qi4bwtZzWLl+Mb8xXuZRpy5a/i2F4DXmkUmMuVl9/EFBdtTCdp+6lmRHIF9he4FNEYCRWINN/rNQ9dYkJS0thEoNJbwCWV5+DAx05bzDHCtEKfpqVNuI9J7fjIdPpJV9EYzg== Received: from AM8P250MB0170.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:321::21) by GV2P250MB0998.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:d3::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8511.31; Fri, 14 Mar 2025 23:36:13 +0000 Received: from AM8P250MB0170.EURP250.PROD.OUTLOOK.COM ([fe80::651e:bbd2:b18a:80ff]) by AM8P250MB0170.EURP250.PROD.OUTLOOK.COM ([fe80::651e:bbd2:b18a:80ff%3]) with mapi id 15.20.8534.027; Fri, 14 Mar 2025 23:36:13 +0000 Message-ID: Date: Sat, 15 Mar 2025 00:36:12 +0100 User-Agent: Mozilla Thunderbird Subject: Re: [PHP-DEV] RFC: short and inner classes To: "Rowan Tommins [IMSoP]" , internals@lists.php.net References: <70f34dcf-e4b6-4d92-8417-83ebeb03153c@rwec.co.uk> Content-Language: en-US In-Reply-To: <70f34dcf-e4b6-4d92-8417-83ebeb03153c@rwec.co.uk> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0105.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a9::20) To AM8P250MB0170.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:321::21) X-Microsoft-Original-Message-ID: Precedence: bulk list-help: list-post: List-Id: internals.lists.php.net x-ms-reactions: disallow MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM8P250MB0170:EE_|GV2P250MB0998:EE_ X-MS-Office365-Filtering-Correlation-Id: 784ccf57-19a8-4b77-1440-08dd635101e1 X-Microsoft-Antispam: BCL:0;ARA:14566002|461199028|8060799006|5072599009|19110799003|7092599003|6090799003|8022599003|15080799006|10035399004|440099028|3412199025|19061999003|4302099013|1602099012; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aHdLRjFzSnRrTDFvRnBXejdRVmpqbVZ2MTI3ZGxZOWJrcktva0VVbGFGNFFl?= =?utf-8?B?OWJCejNNS2RVdE5NNmJuVjFRV3Jmbk5FZmJQTHMvZ3E5UzZtdWVSbUVjL09Q?= =?utf-8?B?VEJEV1dwYVdKQWRmbm1oNFJDeEdaaW80aFpVS2VuT1FsKzI2YnVzRlltNmFx?= =?utf-8?B?ejVBV2hBSVpBUmtyVmNlTVJNWU9kQ09qa2lHKzFXWmx6SytRRVNzeFJITktR?= =?utf-8?B?OTVOWmRCcjd5ZWplQWZEZ2ZtM2xpTnpVT0JOQlQ3L2wwZndEOVpoQ1BKQWl1?= =?utf-8?B?Vkx2K29KOFcxS1dVNXFWSHBtTXZWanU0c1BSMXNGczR3Q2UvZ0l4VzZQeXN2?= =?utf-8?B?SUkxc2VhOUZYSk83UlBNYS9RUkRoS2tib24rRi9ON0xwa3U5YnRiRlF5dTNq?= =?utf-8?B?N3dWVmxqS1h5Y2ViU3h2L2xQTGRENGZ4N3paQ0RqNE1jVzZTZ0U2T2F1VnlP?= =?utf-8?B?bThTZlFsOTNtZHpraDdTWnBlTHBaWkZIVjFUUHNsRjlnaWN2amdtTDd5aUlK?= =?utf-8?B?UTJSUkU0N2lSRExsc2grWDF6YnVFZWh4OFB2WkRUT1Z1WVd0ak5LVWQ3aTgw?= =?utf-8?B?NkRMVE8xWjg5b0pwQXpxbWk1K3hCTzFabGpRNGhvaUUxTTZpcG5jYU9lU0dM?= =?utf-8?B?ci9wSll3RHVYY0dOWU80ak94QzlWbTR3bkpPMDMwSlNXMkdpWENia1ovMkNU?= =?utf-8?B?c3YzVDREV0Ria3B1QVR4Sm16c1ZMeWN3L1JSUkNJY2VYQWtHRGlZU2lvMXQ4?= =?utf-8?B?T2p4SDhNQUVuR0FaaG9pUGl0WXNjMXNhNnA4Zm5FdWhpd2RSNHcyVTN6NDlN?= =?utf-8?B?V2wweGkwMlNnWlJIcnlCcXhBazgwYUtwUy9pUnVISDAvVm1SZ2xGQzRuMTVF?= =?utf-8?B?ajJ5NDhvUlVGSFZmK2xzK0poeWkwS0ZXNnlrNStzU3RianpDWHB4eVZ6b21v?= =?utf-8?B?Vm1SRG9uaEJPVjV4R0lPaEl3MGVxYkxTSm1BZWVGUG45czg4dHlZU1R6YzlV?= =?utf-8?B?YWZUeUZ0eVNOaDA3VGFxZHVIMnBMempVMjkyb0k2ZG1ONXVyVVBCYVZOU25h?= =?utf-8?B?bXVCN2pjRjc1WFlIWjQvZ2tuVHhUVUF2SE40Nk5xVG9wa3dibU4yOGRsSU5u?= =?utf-8?B?cHhpekZXRUcrWUd0cGJmaVhwdDhPZVFwbzQwVkxnYlRzWHlWU3cwY1VSc2pv?= =?utf-8?B?MUFXNTBRWHVhZi9NaW5rM0ZJVm03QTlBVEZScHVZZ2dvTy9MQVlXZ0V2dG5G?= =?utf-8?B?bCtLYXZuZHZuMm9KMEhpYmtmTUlzLzJEYlh1STV3aVdiWXJzcm4yQUdUc241?= =?utf-8?B?MS8yUGd4a212UWEzdzRNZlFIK3RDZ1F5Wnlxa2E1WWQ3a2Y2U1VZMkdRVTNM?= =?utf-8?B?SFhkdlB1M1VRUVB1d3lhc1A1ekxITmxuVWVDSXpGbkpuRThKVWplczZQVjJw?= =?utf-8?B?MklJM1lSeWkvTktQc20xZlBXeEhFMTdodkYxYjN6d0Z4U05aWEtTbEI0Y1lJ?= =?utf-8?B?NDZqendrQnhDMGpjRjk0U0VndTAyY0JrQktrdGQvdWlJMjQ2UDVxdGRoZ1c4?= =?utf-8?B?ZldtNmt1WGoxWmQwbldHcnRLMzAzUU1DNTNXMlRncGVEaUpYUjFMRFRVa1VU?= =?utf-8?B?MEYyS2JUM3QyZ2cwNEVtSHp2OUF4UUNzdWlHRlp4UzFCeEV6RitaY2RmTi9u?= =?utf-8?B?RFo0L25FZlJFZkJVamRnZFp5M1gwUHYxM2tHM2NSNFpQZk93aUlRUllwQXRS?= =?utf-8?B?Yk52RzhjRGtRa2tsR2xnUjU4RTllbHdvMkV5enZBVWVxQVMvU3E0TVFOOEpW?= =?utf-8?B?bUZCMzFGdnBhYmd1alBkQT09?= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?THhhUitXb1MwV1lvNVFRaHI1MzlvWVBJWGZkd0QxYlhlVGN2MFpEOTdFS0NE?= =?utf-8?B?aS9BbjZla3VYamgyN2ZncVZPV0o2NEhSWGY2OG4yanQ2d2xacTB0ZDB3Y3hN?= =?utf-8?B?cVBjSnUyQzJreldvUmZEMWE2K0ttS3dodFR1aHcvYUdmNTY2MTZCRmViNDJF?= =?utf-8?B?d29MZ09CVjRLL1VCVGdCRi9tWFRVTVhka3I0QzVhdmhlNThCZ2JVeEYzVE5h?= =?utf-8?B?S01tdElxT3QxK1ZtYUJ3Y00yMnZ6YzFuV1RqMTg0Y1BYKzRlWDVQd2k0cUhP?= =?utf-8?B?alZMY0tRbERsMVdoT0hiaHFCQUdtcHdNZDlhWk5DSUtSNzhoZG1DUDY2OVpv?= =?utf-8?B?d1NDMmhGT0w3VTdOeXdpbitaV2NCUWZIY0dpQmpRWGZXbHlXMHBQTVB5Q202?= =?utf-8?B?SlI5cWFCaE5HdzBvRzl2UFhURzB0L0g3S1V4aThlOEdXSmJFYXRUV04yYmpZ?= =?utf-8?B?V2xMNm9nbnh4TDhrZEZBQ3VxcU1xaTRoaFhqdlYrN2Y0Y0x5dkk5NEJzbkxp?= =?utf-8?B?RmxJZi91c0wwUFJhWW1Jb2laNSt2cm10aDh5VXhqSXhQRjBiQnN0cWcyZXpH?= =?utf-8?B?b2FFV2txL2xsMlJ3d1hkTXRZSVJmL0Jad0pPajdHUUZVSExDdTFWdjV6T3oz?= =?utf-8?B?YityOTJXM2pJRDRoSjNQZnhhaFF4MW5LSi8zN0hpQzRqUVJybjY4VnBneEVh?= =?utf-8?B?Y0VCNVArbTBJQm9hS29YZ2I5QXFpWm1ZY2lMbnVLdHFGQXNNM09sV3lWV0Nk?= =?utf-8?B?Ymt6dHZodzBRT2JEQ0J6N3lJZnZ1UzVRMjJQZGRRWVpUUzRNOUF6Q3FkVjAx?= =?utf-8?B?NC9OL1p6QTB3NVk1SGJQbm9BdVJ4b2ZyYjRNazBCeFpBa2RxV1o2TXJ5WDh3?= =?utf-8?B?bTVJbC9GbldBcmlwM1NCMVNFUVFHbWd0d243YlFidnNsM0dMMkkyaS9LeUJC?= =?utf-8?B?RG12Q2U2YVpsV0F1a1k2TS9UNGNHbmwwQUxNSFBBVmptR3ZUdUltVnhOYytt?= =?utf-8?B?NGo0V0tKL1BEYVl1c3pZZHVtYkVwR2dGU2xxN0YyM0w2amhxaGNqYmhYNUVk?= =?utf-8?B?TFAwbnVZOGt3QVZ6cFFvNTVZYVNIcHBvWHJFalU2NjVSQkV2OTBOenJ0L2V4?= =?utf-8?B?M2V1TzVZZEFCQUdxNTR5dnQwRWhUWEVnRG5LK0pmUU8rZ0kvNXJKaDVVZndr?= =?utf-8?B?MTExNUhMUS9wZzBmRTdha2c3QkRnU2s3T01rMnJxNkJmWkJMMjg1UmlMTUw1?= =?utf-8?B?Qk1za1Z3dnUyUDdiOFJnbjBBZ2o0K28xWHB4N2NGQUIzMUVPbTU4VC9Ic0lU?= =?utf-8?B?dVNXRGxhM0xvMTNjSVBvdG45Wm9YVENhcXczZ3dLbDU0Ym52WHNaOHpoS214?= =?utf-8?B?VjVITFNQVmpIdGFGaFhjc2EzSDFrTUxqZ2daZ0lpLzJid0ZtS1Y2NmxVVG1h?= =?utf-8?B?NE1vOHhPR213VzZPeE9WZkJwd3pSTHdpZTZqUzNLQmpsb1Z0Uk90M2daREZE?= =?utf-8?B?MU1YTWprMTA3aWVjWEdENHVneDBHaWU5NDFLSXlhaHBlYUtSbjUxSmN2cmxv?= =?utf-8?B?eHJETUE2K2xVU0xxVkRja3NtaWdZallHTnZoQ1Nwek1BdGZXMGJsRTlVRTJD?= =?utf-8?B?Zk9LQTBiVkRzQjZ3SkNXdEdXcGRiSHFJYkFLcFcwYTA4RXlENFROdFZ5YnE0?= =?utf-8?B?VWxMQzMxT2E3ZCtoQTlYMnNPWjh6dThXSFNmOWE5bTh3K2NkaDh3Q2ZLVm9l?= =?utf-8?Q?utGkN4j1t0QjiE0TXs=3D?= X-OriginatorOrg: sct-15-20-7784-11-msonline-outlook-95b76.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 784ccf57-19a8-4b77-1440-08dd635101e1 X-MS-Exchange-CrossTenant-AuthSource: AM8P250MB0170.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Mar 2025 23:36:13.4436 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2P250MB0998 From: bobwei9@hotmail.com (Bob Weinand) On 15.3.2025 00:21:32, Rowan Tommins [IMSoP] wrote: > On 05/03/2025 23:11, Rob Landers wrote: >> >> I'd like to introduce my RFC for discussion: >> https://wiki.php.net/rfc/short-and-inner-classes > > > As a user, I find the concept of inner classes quite confusing. > > However, I was looking at some code earlier and thought an "inner > enum" would be useful, to replace various "MODE_FOO" type class > constants - but I see those are left to future scope. :( Yeah, that's quite disappointing. I expected this to simply apply to all types of "class" until I saw the explicit exclusion. > > I'm aware they exist in a lot of other languages, though, so I thought > I'd look around at how the proposed version compares. It seems there's > quite a zoo out there... > > One common theme I do note is that all four of the pages I found are > titled "nested classes" or "nested types"; in some cases, "inner > class"/"inner type" has a specific meaning, which I don't think > matches the RFC's proposal. > > > C# - > https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/classes-and-structs/nested-types > > I think this is most similar to what you're proposing. Interestingly, > the nested class defaults to being private, i.e. only usable within > the parent class. The default visibility in c# is private, for everything. The RFC is consistent with the default visibility in PHP: public. c# is consistent with the default visibility for c#. > Classes, structs and interfaces can all be nested inside each other. > > > Java - https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html > > There are two types of nested class (plus some more related concepts > which seem less relevant) > > - "Static nested classes" - static in the sense that they act like a > static member of the surrounding class; appear to be *only* about > namespacing and visibility of the class, with no special access to the > surrounding scope > - "Inner classes" - associated not just with a parent class, but a > parent *instance*, so have to be created with the syntax > "ParentClassName.new InnerClassName" or "this.new InnerClassName"; are > not allowed to have static members inner (instance) classes in Java are quite a weird beast. I don't think it fits PHP paradigm nicely. Bob