Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:16741 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71478 invoked by uid 1010); 16 Jun 2005 16:30:45 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 71463 invoked from network); 16 Jun 2005 16:30:45 -0000 Received: from unknown (HELO gmail.com) (127.0.0.1) by localhost with SMTP; 16 Jun 2005 16:30:45 -0000 X-Host-Fingerprint: 206.190.38.116 web50807.mail.yahoo.com Received: from ([206.190.38.116:27027] helo=web50807.mail.yahoo.com) by pb1.pair.com (ecelerity 1.2 r(5656M)) with SMTP id A6/65-20931-239A1B24 for ; Thu, 16 Jun 2005 12:30:43 -0400 Received: (qmail 80368 invoked by uid 60001); 16 Jun 2005 16:30:21 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=Bq0NGfV2fQb/qQKSFQo4+eI7jcSuxune40XPcIVyDTgwQfxirdoA7XvJYxw09p+S+r6qoIlZHCl7FPwdgYs7StrQW4bzZUx6BcEtf8FllXIP88YTE2OvOpRp3pdG8tjP63L90rb6pRY6krPtTFY3R6y+8LVWi6WWJzAsy8PAsx0= ; Message-ID: <20050616163021.80366.qmail@web50807.mail.yahoo.com> Received: from [198.96.180.245] by web50807.mail.yahoo.com via HTTP; Thu, 16 Jun 2005 09:30:20 PDT Date: Thu, 16 Jun 2005 09:30:20 -0700 (PDT) To: internals@lists.php.net MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit Subject: In regards to E_STRICT and PHP5 From: jayboots@yahoo.com (boots) I was hoping that in the future, E_STRICT wasn't expanded and was perhaps even taken back a step. I understand the reason for it: code correctness. Yet if PHP5 is (rightly) considered a runtime engine then its job should be to evaluate and execute code and in the case of failure, explain why it could not do so. In other words, if a code segment is valid, then the runtime should just do its job and run that code. Code correctness is the job for offline tools like lint. Yes, PHP is a dynamic language so things like E_NOTICE are often required to be triggered by the runtime. Yet the only place keywords can be generated dynamically is through an eval -- and I suggest that getting deprecated warnings at that point is not very enlightening. There is another difference between an E_NOTICE and a deprecated warning: the first can lead to (or mask) programming errors, the second can not. Its almost as if another error flag (not error level) was needed, something like E_DEPRECATED. The real question is, should the runtime be concerned about that or should that be something that the toolchain handles? I would rather the latter. If there is any merit to E_STRICT as it stands currently I find it to be negated by the fact that it throws messages for completely acceptable code that the engine is both willing and capable of handling. If var is not acceptable, I think it should be removed as a keyword. If it is acceptable, the engine shouldn't complain about it. (of course, I think it is acceptable.) Very best regards and thanks.