Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119711 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 17019 invoked from network); 15 Mar 2023 17:18:09 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 15 Mar 2023 17:18:09 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 72C381804DF for ; Wed, 15 Mar 2023 10:18:07 -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=-0.7 required=5.0 tests=BAYES_05,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Wed, 15 Mar 2023 10:18:07 -0700 (PDT) Received: by mail-pl1-f177.google.com with SMTP id c18so2227587ple.11 for ; Wed, 15 Mar 2023 10:18:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678900686; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=yEeDYJEazyXgCHHVi9CAxegH6O0cPM9wyNebn51jxEw=; b=GZlr3mUzmNu7M6e640EptKKeHBdo4UR2EcUkxsJbTfGC1cxBAl4HIXBSfwTJRl9WMI HUiHYP5xGKEM8QRBXwxgulM0wd9hxFbblpIg/DLw9D7/te+qryql4YaHOLtaOgGBfuOO akp7IUQOz8gn5Ej4XWys5Z+/0AIDulFhkT7tPLxbW8aOcyEsj3bLMefG5/VyNt9Ewt2k 1kZrTDsGVzlwNi3dxP3rplJdJscytQJbcZ10I27OKIntXHb457e1euLNIbl7frxkTQBK rOx7GVP7MZUT05J9/7L6VI2yxn8b3ZzkXam05UcKg8LuJV5f2D8VtGdrRhfMOBFVV9MS F5vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678900686; h=to:subject:message-id:date:from:in-reply-to:references:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=yEeDYJEazyXgCHHVi9CAxegH6O0cPM9wyNebn51jxEw=; b=6t2ljjYWLuKmGt446FWBOkKp8F9OuayBLT0mh6JnMMJl3kn3tfPlRijZfpiOIVYs0H 5VOFwz9C2e7JMaIGlvXM+l2ODGuoQyFfXhjIY0YQU1E81dl3uPls1YkwhgxMmWdl285S W0gaxYc8fsTOMNP/si+YM6N9i+N3nVXQFOwgWlWEnfcN/PNlNLzshVRMNlQR/waf5rUS DciiDJgJWacT86Xg3aac8aKmuuGQccfnhIcK6LGOl2ewpQTFPzxt+nxwnpg3zjDoEcce VwQyc9iknTZgHHypysMPZoibtPslYQof+RWiJVg9eugfHlLmkTdS2PZ2ShRtg3n+dRA3 iTqg== X-Gm-Message-State: AO0yUKWLSOasDyaMh7tRGYFYsYapU+AP354+lSHvJf9AX716/0hH8Cjx b/bqp2i43YTvjMZOY7iwsB8n5KDLesluYbgXXZ3doiS0 X-Google-Smtp-Source: AK7set9IfRN5lf3C99mVOLs/AYjSlG1i3PJio0xVzVcgSRyx++KeZHUKbNfsguJGlNb8NRge95yaAqJ96J5d6s8A3Qw= X-Received: by 2002:a17:90b:4189:b0:234:acfd:c8da with SMTP id hh9-20020a17090b418900b00234acfdc8damr230820pjb.2.1678900685630; Wed, 15 Mar 2023 10:18:05 -0700 (PDT) MIME-Version: 1.0 References: <20230315121623.GK2480@phcomp.co.uk> In-Reply-To: <20230315121623.GK2480@phcomp.co.uk> Date: Wed, 15 Mar 2023 18:17:54 +0100 Message-ID: To: internals@lists.php.net Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] [RFC][Vote announcement] Arbitrary static variable initializers From: tovilo.ilija@gmail.com (Ilija Tovilo) Hi Alain > > https://wiki.php.net/rfc/arbitrary_static_variable_initializers > > https://externals.io/message/118976 > > Could I suggest that you make something like the following throw an error: > > function foo($i) { > static $a = $b + 1; > static $b = $i; > } > > You could try to reorder but what if the second static had been: > > static $b = $i + $a; > > Yes: stupid, but someone will try it. With this RFC static variables are evaluated in the normal order of execution. The first statement will throw an undefined variable warning and result in 1. The second one will be initialized to whatever $i contains. This is consistent with non-static variables. Ilija