Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:101372 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 98359 invoked from network); 19 Dec 2017 03:45:11 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 19 Dec 2017 03:45:11 -0000 Authentication-Results: pb1.pair.com smtp.mail=tendoaki@gmail.com; spf=pass; sender-id=pass Authentication-Results: pb1.pair.com header.from=tendoaki@gmail.com; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.213.171 as permitted sender) X-PHP-List-Original-Sender: tendoaki@gmail.com X-Host-Fingerprint: 209.85.213.171 mail-yb0-f171.google.com Received: from [209.85.213.171] ([209.85.213.171:36766] helo=mail-yb0-f171.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 65/0B-21958-E3B883A5 for ; Mon, 18 Dec 2017 22:45:03 -0500 Received: by mail-yb0-f171.google.com with SMTP id j7so12706021ybl.3 for ; Mon, 18 Dec 2017 19:45:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=cf9kH7Vy7BV8gASXnjpB/HwfEPZz1TRKrOXZkLBMgQg=; b=FCK0NeMan6AGuqbSYSCUuHYQy4+u6G/IZ5ww2ofeD+p+sQDaQa16439SyBZiRfBBYO 6qIleUkjDVgDlWbvVs+zk19XNj9vuW94xeQZ/W+juTl9wAUvvLAIEQr8UxZdSM9MSSoO m1UM4LTFSXvVxbmF4jPUSsm/0OVJUQsqLgjsRlvggr251p9Hh97eyYpPZnyPSFptoGhf cQzI3IdOe2+yxwJNto15Fy/TxJsSal2HxQdrMv66BV/5ZcJ3RseYrAKYGjzv8VKda3G8 5I1RSw8nRukAwjrXBkGOXdT/p54hivV5a/zJEM39VsR6NNMjwneXp8+hxfBhaUvfGYsM mIEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=cf9kH7Vy7BV8gASXnjpB/HwfEPZz1TRKrOXZkLBMgQg=; b=imC8XzMYvxOmoCEJRhXM9t5UU+pdhAzibpre0+k82KrBHKP5y7cNtp1iK0xo79+iGG atzbyYzHa+lmVPOipZEcv3ilu4Do3VeVZOaAGGacErX/p61IsGlOO5duggF7X7fe1Qw4 dbpdPvJIVlZgno8WrYx0UyfbCQlsOkMtsZI1ZPTLciZBx2SfbX7C+NEJU7sXOXiK/sUI gV4hKQuQmTCpYTydnkhNlZJY82aCOOXiBIBJjJhg5lZSyckBKfNQhY2SaBWp+hnzIc2H ThIFKUEP8aqDpcZCR3/dCApwZ7BMtGKZ+RzC4FZURkXbkgHZjxOx1Fe2SMoOtynZM0de xg+g== X-Gm-Message-State: AKGB3mIol5LbUP7GPg2DlxCEqPwxKUBTvcM6W9rHz6JzNH0yn8jbVQns AX2cuX/XBJTlx0raUWF/7biZT4k01BUGW25vkwV4XQ== X-Google-Smtp-Source: ACJfBovZoSwX88tYcphD8LDtH5n8IeIgKr2BmJjJD28+MjpuTtlGTXGcP5348ShCFFowgZVHz7T5NW44rhqFZkQiOH4= X-Received: by 10.129.163.144 with SMTP id a138mr1397857ywh.238.1513655099963; Mon, 18 Dec 2017 19:44:59 -0800 (PST) MIME-Version: 1.0 Received: by 10.37.201.7 with HTTP; Mon, 18 Dec 2017 19:44:59 -0800 (PST) In-Reply-To: References: Date: Mon, 18 Dec 2017 22:44:59 -0500 Message-ID: To: PHP internals Content-Type: multipart/alternative; boundary="94eb2c1289ba8bbcdd0560a94a27" Subject: Re: [PHP-DEV] [RFC] Mixed Typehint From: tendoaki@gmail.com (Michael Morris) --94eb2c1289ba8bbcdd0560a94a27 Content-Type: text/plain; charset="UTF-8" On Mon, Dec 18, 2017 at 10:34 PM, Michael Moravec wrote: > Hello internals, > > I'd like to propose and discuss Mixed Typehint RFC for PHP 7.3: > https://wiki.php.net/rfc/mixed-typehint > > The purpose of this RFC is to introduce "mixed" typehint on language level > to be used > as a valid typehint. If I'm not mistaken, "mixed" is used in documentation when a function has been overloaded to avoid needing to have documentation for all the methods. C allows overloading, and I imagine that PHP functions implemented in the engine using C are using overloading. To be honest, I'd rather see function overloading in PHP than this, but that's a massive can of worms with a lot of problems on both the implementation side and also on the usage side. Function overloading can be abused to create some rather bizarre and difficult to follow code. That said, with PHP moving to be at least a little more strict about variable types. As to the proposal itself, I see no advantage over not using a typehint at all. More on overloading: https://en.wikipedia.org/wiki/Function_overloading --94eb2c1289ba8bbcdd0560a94a27--