Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:63692 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 41999 invoked from network); 28 Oct 2012 16:02:51 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 28 Oct 2012 16:02:51 -0000 Authentication-Results: pb1.pair.com header.from=cpriest@zerocue.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=cpriest@zerocue.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zerocue.com designates 67.200.53.250 as permitted sender) X-PHP-List-Original-Sender: cpriest@zerocue.com X-Host-Fingerprint: 67.200.53.250 mail.zerocue.com Received: from [67.200.53.250] ([67.200.53.250:51431] helo=mail.zerocue.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id F2/07-18930-B275D805 for ; Sun, 28 Oct 2012 11:02:51 -0500 Received: from [172.17.0.122] (unknown [72.179.52.187]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (No client certificate requested) by mail.zerocue.com (Postfix) with ESMTPSA id 78F0812037B; Sun, 28 Oct 2012 16:02:48 +0000 (UTC) Message-ID: <508D5726.8080200@zerocue.com> Date: Sun, 28 Oct 2012 11:02:46 -0500 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20121010 Thunderbird/16.0.1 MIME-Version: 1.0 To: Pierre Joye CC: internals@lists.php.net References: <508A68B9.1050801@zerocue.com> <508AA48D.5010903@sugarcrm.com> <508C1C4F.6060406@zerocue.com> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [PHP-DEV] [RFC] Property Accessors v1.2 : isset / unset "failable" From: cpriest@zerocue.com (Clint Priest) So... to be explicit here, you think in this situation: class a { public $b { set($x) { $this->b = $x; } } } $o = new a(); if(!isset($o->b)) { /* delete files */ } echo (int)isset($o->b); /* This should return false and not emit any sort of warning/notice? */ I mean specifically, there is no getter defined, therefore the result if isset is indeterminate and while I can see it not causing execution to stop I don't see it being a good idea to not warn the developer that what they've attempted is not correct. Without a getter, isset() is not a legal call (since the value cannot be retrieved). On Sunday, October 28, 2012 4:02:23 AM, Pierre Joye wrote: > hi Clint, > > On Sat, Oct 27, 2012 at 7:39 PM, Clint Priest wrote: >> That's basically what #2 is getting at, my only question is, emit a warning >> or notice or not? >> >> Technically returning false on an invalid isset() call could be misleading >> without emitting some kind of notice or warning about it. > > isset is used for this exact purpose, avoid noisy scripts while > testing the existence (instance, init'ed, etc.) of a variable or > property. Raising a notice here sounds wrong, no matter in which > context. > > Cheers, -- -Clint