Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:115267 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 96716 invoked from network); 1 Jul 2021 16:10:29 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 1 Jul 2021 16:10:29 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 31260180507 for ; Thu, 1 Jul 2021 09:31:02 -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,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS autolearn=no autolearn_force=no version=3.4.2 X-Spam-Virus: No X-Envelope-From: Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 1 Jul 2021 09:31:01 -0700 (PDT) Received: by mail-ej1-f53.google.com with SMTP id yy20so11411694ejb.6 for ; Thu, 01 Jul 2021 09:31:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=PkNTqe+4/fUoIFtnR8trCXZjidJMImWK7n5tnwNt8FM=; b=P4Hbe5pMr+bBPv2i1i8U0BYzl7RcetIS3ooIX0Hh29aJk9SZs0IxLdkSWCoYASQBj7 aLoMtfPH28xSppuLya84+C0eohUxg3yW4F6Uz8xiC7fItG2aH+EuY2K8Gjtw3OvoggDf QAMFcZsaup4ojkXz4e39FRfx44KSCc+T3tHa4bLijUIPTqgB4UkOjB7ZNpFcudyBqdE3 cSyS+ucN7ZRiVf+cinueHuHUHvDzGmCrEwQYLqinqac/0S7TVKqxOMAol5qVS+MFtFW4 cuzVrrZ59YGQO0pnloKwhzNRknYxEnuabVMyCuVduPxcx2Ul83fXX3S2diql3IDFvVHL ys0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=PkNTqe+4/fUoIFtnR8trCXZjidJMImWK7n5tnwNt8FM=; b=G7u8OVe6uRey+0CyZ9iI803lsp5Nw4qP1AZvNwORP0KjlSHEAUXGuTebUv9WBVsjp2 KdY7Cq8td57S9A05LfzJj7vVe4iz9W7fbuZc36007bPvB2savsnfBCWKNC4018WLZxse kcczvdHbjUTR/gbcwyiHxU9KAOcxnd2SQ6/uBMZxkYa8F4+P+YHbrkQ7C/TT65FnJJJX GXV+iEU0YnSVxWXt+TDPuNXifyIyvULr9nEgTHCsxpD7o02OCg5TIyon2+5IwXk3SMqx MNa9RgivcXzQOJa2jyIuZ28oXL3bu0zQoVvJgjY0cUjeUZ/wbntQpCdHjKX61IiFLhIP GM9Q== X-Gm-Message-State: AOAM530yXs7qSOymbWgBbWAzullSauiV7qe7OZNwMv8fUMzWOWGmO++p D1aWp63Zpg/7QfMFku72hp5eQ9kvq8M= X-Google-Smtp-Source: ABdhPJzb2L5ZPyfkFKToSFPDGrlSjL7VS0DcbsJfDWV5Gy2pvSenGFfi9pLySqqxEP1esa7Fd437qA== X-Received: by 2002:a17:907:9603:: with SMTP id gb3mr769683ejc.398.1625157056659; Thu, 01 Jul 2021 09:30:56 -0700 (PDT) Received: from claude.fritz.box ([89.249.45.14]) by smtp.gmail.com with ESMTPSA id yh11sm118501ejb.16.2021.07.01.09.30.56 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 01 Jul 2021 09:30:56 -0700 (PDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 13.4 \(3608.120.23.2.7\)) In-Reply-To: <1ae611cb-b077-3db0-3237-c7ffa1c6e745@ralphschindler.com> Date: Thu, 1 Jul 2021 18:30:52 +0200 Cc: PHP internals Content-Transfer-Encoding: quoted-printable Message-ID: <51A66F1F-F7AC-4D2A-A142-6BAB4471721C@gmail.com> References: <1ae611cb-b077-3db0-3237-c7ffa1c6e745@ralphschindler.com> To: Ralph Schindler X-Mailer: Apple Mail (2.3608.120.23.2.7) Subject: Re: [PHP-DEV] [Proposal] call_user_func_map(): flexible named parameter mapping for call_user_func* From: claude.pache@gmail.com (Claude Pache) > Le 27 juin 2021 =C3=A0 16:39, Ralph Schindler = a =C3=A9crit : >=20 > The short proposal: >=20 >=20 > Make a variation of this work (notice parameter order and 'b' is goes = unused): >=20 > call_user_func_map( > fn ($c, $a) =3D> var_dump($a, $c), > [ > 'a' =3D> 'the a value', > 'b' =3D> 'the b value', > 'c' =3D> 'the c value' > ] > ); >=20 > // string(11) "the a value" > // string(11) "the c value" >=20 >=20 Hi, If you want to ignore arguments in excess, your function may have a rest = parameter collecting them. The following will run without error: ```php function foo($c, $a, ...$unused) { var_dump($a, $c); } $args =3D [ 'a' =3D> 'the a value' , 'b' =3D> 'the b value' , 'c' =3D> 'the c value' ]; foo(...$args); ``` =E2=80=94Claude