Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:101611 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 75073 invoked from network); 17 Jan 2018 18:43:08 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 17 Jan 2018 18:43:08 -0000 Authentication-Results: pb1.pair.com header.from=narf@devilix.net; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=narf@devilix.net; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain devilix.net designates 74.125.82.52 as permitted sender) X-PHP-List-Original-Sender: narf@devilix.net X-Host-Fingerprint: 74.125.82.52 mail-wm0-f52.google.com Received: from [74.125.82.52] ([74.125.82.52:36248] helo=mail-wm0-f52.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 5C/50-12394-B399F5A5 for ; Wed, 17 Jan 2018 13:43:07 -0500 Received: by mail-wm0-f52.google.com with SMTP id f3so17848855wmc.1 for ; Wed, 17 Jan 2018 10:43:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=devilix.net; s=google; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=4U4Qiw/YcLhjO+/SC1vsnZI2GEnm8okktQR3d0Psv1c=; b=Ct6Ko3Jf17ouxni2iBGrDtA6hr0Otubn6YTl+PUzV4Ss7lwyr4Cy0DrJjn+5zItp4X HyK6R5EcM0oyoj6Tta9HqOmoNmCo3/lz4D1LhupLgzJz69MtcBFNV1heNAj1yyNXPZII SchaFYApj9ebSflrh0eQudsbIBwoCUIF/PkYY= 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:cc; bh=4U4Qiw/YcLhjO+/SC1vsnZI2GEnm8okktQR3d0Psv1c=; b=dst+JFnVXwa2mdeDlMn2v33kq5RxoZmP3W4Gvj0dT3g+yieuqVIOxLpH46O7LDW6uU Wrn+rOlGZ0sZTKjHCvUCSVUYiZfOeK/9rrX/BdKc5xHt8aumbMV7+jSZnOC4tcMA7ZaI YZwHo7hTyMDCeF3liQaVU2FDeITvWEOfjiP64jvZJOp/josqpWuapVglpxWghCj6/pDA tBxCNnamwGhvWQiayxG5NQPH9YV/Sv5J4NvvdtF33v2g/NUL5RKq4Fa5K+S6O56W3P9I A2XroT3MDwpcw4XqoaC0ixPsStftzg2jLNeID3d426DdteAiH94oUL8BVtLNPgJs1xy+ 98sA== X-Gm-Message-State: AKwxyteGFHOTbIQQSp9M/qhYYaeLbFZSWQDAp0z4Rshj37iW22urfzKP Bk1fb4IQSHXkDXiTLKgBw9HhdOE9OQPByBnnlmKy6g== X-Google-Smtp-Source: ACJfBouNDIRFbKEwuc9UecWOKwnWGjzS16MzKOjtOAXrdTr164eawR2PoEfTp6VaA4C3V2i+sUAHJ5HZ11eYorFidj0= X-Received: by 10.28.229.194 with SMTP id c185mr2811252wmh.142.1516214584784; Wed, 17 Jan 2018 10:43:04 -0800 (PST) MIME-Version: 1.0 Received: by 10.223.155.138 with HTTP; Wed, 17 Jan 2018 10:43:04 -0800 (PST) In-Reply-To: References: <6fac0482-93fe-b15f-632c-1058232abcf0@eordes.com> Date: Wed, 17 Jan 2018 20:43:04 +0200 Message-ID: To: Lito Cc: Marco Pivetta , PHP Internals List Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] [RFC] [DISCUSSION] Improve null-coalescing operator (??) adding empty check (??:) From: narf@devilix.net (Andrey Andreev) Hi, On Wed, Jan 17, 2018 at 8:28 PM, Lito wrote: > No $foo ?: 'default' , it's only equivalent to (isset($foo) && $foo) ? $foo > : 'default' if $foo exists. > > Also PHP has added ?? as null-coalescing operator that works with undefined > variables/attributes/keys, my proposal is an improvement over this one. > > I don't want to endorse usage of undefined variables, can be used in a large > set of situations, like object attributes, array keys, etc... > > Anyway thanks for your feedback. > Lito. > There is a shorter version: empty($foo) ? 'default' : $foo; And I think that's quite convenient for the few use cases it has (refer to Nikita's reply). Cheers, Andrey.