Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:33902 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 8954 invoked by uid 1010); 10 Dec 2007 18:02:42 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 8939 invoked from network); 10 Dec 2007 18:02:42 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 10 Dec 2007 18:02:42 -0000 Authentication-Results: pb1.pair.com header.from=stas@zend.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=stas@zend.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain zend.com designates 212.25.124.162 as permitted sender) X-PHP-List-Original-Sender: stas@zend.com X-Host-Fingerprint: 212.25.124.162 mail.zend.com Windows 2000 SP4, XP SP1 Received: from [212.25.124.162] ([212.25.124.162:42699] helo=mx1.zend.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 82/BA-37002-14F7D574 for ; Mon, 10 Dec 2007 13:02:42 -0500 Received: from us-ex1.zend.com ([192.168.16.5]) by mx1.zend.com with Microsoft SMTPSVC(6.0.3790.3959); Mon, 10 Dec 2007 20:02:39 +0200 Received: from [192.168.16.91] ([192.168.16.91]) by us-ex1.zend.com with Microsoft SMTPSVC(6.0.3790.1830); Mon, 10 Dec 2007 10:02:35 -0800 Message-ID: <475D7F3B.30504@zend.com> Date: Mon, 10 Dec 2007 10:02:35 -0800 Organization: Zend Technologies User-Agent: Thunderbird 2.0.0.9 (Windows/20071031) MIME-Version: 1.0 To: Steph Fox CC: internals@lists.php.net References: <46.93.08781.F374D474@pb1.pair.com> <474d5320.0d135e0a.43d0.ffffd2b3@mx.google.com> <474D6813.9090606@eenterphace.org> <474DB7F8.5010907@zend.com> <016b01c83ae3$c3acfb60$e6dfc350@foxbox> <475CCA82.2010204@zend.com> <018b01c83aec$7413b2c0$e6dfc350@foxbox> <475CD134.9020005@zend.com> <00c001c83b4c$12cb0f30$e6dfc350@foxbox> In-Reply-To: <00c001c83b4c$12cb0f30$e6dfc350@foxbox> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-OriginalArrivalTime: 10 Dec 2007 18:02:35.0861 (UTC) FILETIME=[D8161050:01C83B56] Subject: Re: [PHP-DEV] question regarding type hinting parameters of php functions (array_slice) From: stas@zend.com (Stanislav Malyshev) > There's an IS_NULL check... > > if (ZEND_NUM_ARGS() >= 3 && Z_TYPE_P(length_param) != IS_NULL) { .... > > If Z_TYPE_P(length_param) is 0, it's not NULL because it has something > in it. If length_param were of type long and had a value of 0, it would > be NULL. Ouch... Now I see. Is there anybody using this trick, provided it never was documented? This is *so* wrong. > The manual kind of skirts around it: "If length is given and is > positive, then the sequence will have that many elements in it. If > length is given and is negative then the sequence will stop that many > elements from the end of the array. If it is omitted, then the sequence > will have everything from offset up until the end of the array ." Meaning, basically, -1 is the same as omitted and the same as null? -- Stanislav Malyshev, Zend Software Architect stas@zend.com http://www.zend.com/ (408)253-8829 MSN: stas@zend.com