Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:97170 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 90869 invoked from network); 25 Nov 2016 07:27:29 -0000 Received: from unknown (HELO lists.php.net) (127.0.0.1) by localhost with SMTP; 25 Nov 2016 07:27:29 -0000 Authentication-Results: pb1.pair.com header.from=kalle.php@gmail.com; sender-id=pass Authentication-Results: pb1.pair.com smtp.mail=kalle.php@gmail.com; spf=pass; sender-id=pass Received-SPF: pass (pb1.pair.com: domain gmail.com designates 209.85.223.169 as permitted sender) X-PHP-List-Original-Sender: kalle.php@gmail.com X-Host-Fingerprint: 209.85.223.169 mail-io0-f169.google.com Received: from [209.85.223.169] ([209.85.223.169:36311] helo=mail-io0-f169.google.com) by pb1.pair.com (ecelerity 2.1.1.9-wez r(12769M)) with ESMTP id 4B/AE-21589-FD7E7385 for ; Fri, 25 Nov 2016 02:27:28 -0500 Received: by mail-io0-f169.google.com with SMTP id x94so112561255ioi.3 for ; Thu, 24 Nov 2016 23:27:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=akF0SurQNMYQapqLNmSabM+/kVfegq48rpVe5vzTsK4=; b=eSKvMJDwJBMJAe1wtsjfrd08Uaz9XXF62p50kPgn0olH5eURqasxV5EyvTopltZu8c irHJJWfvqSgOzHK9dn+zGox13PjlmVxxGYHo6rIRT4YUIHyt6I6Z3qpBcdGJ4IlO32SB 4sCslvSVnPzVLasCUQtSpde0RQoa4KqfWtHP55UChDkkWKxP/pEaFQD7K7x0HZQy4xkj OJOIOWYvIxGR0/4vgzOonWn3HzeJrf+MCys5c/G010ED/affirgOJTO4wO9MQffOQTpm Yv4ppblo0nTRGZq2RhZO9v0e4yZun6aU1qS3LuCsPISDiCd+0qev6+gp0LoVWXl6DzKo YAIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=akF0SurQNMYQapqLNmSabM+/kVfegq48rpVe5vzTsK4=; b=hNQVpnigA9T0yCeHby8wWVjjzL1GQ0Q0nl2LNxjrHq6dtdsfI6V3GQgqDXWznKw9Cu SlzN6kPfljaf4spR1mlLN6FIm4v+xCpiNx3I1rM0lp+qRMLlcYRIT8ty8cI4VhyQR4eH 1rVVvHFgsfBZ3wGxb/lfWrjzTOsXjMOiM/U5Vta4Ons8lf6qLszVmdcs57xVtitozfJO UevIomravDN2f56pzeVGCIQb6lMks3vKtJJeMgHAT3a0+l6op+pcQnvWD6Nz16vq5BHj 1bzpZ8Q3QE3CHZEPsSq+qhjgcHRfwI5OZHpf8YcfzniqA+6mZMs5S5q82zOeJiYJ3e5K 1lvg== X-Gm-Message-State: AKaTC018zKU40pDEJi/yNCVSAbw4lZtPY2Bu5bJiMOUmDaEpemIeUGZ83RQip4bV/D04SDq6TJfv/iTTni9VHQ== X-Received: by 10.107.167.5 with SMTP id q5mr5020868ioe.75.1480058845075; Thu, 24 Nov 2016 23:27:25 -0800 (PST) MIME-Version: 1.0 Sender: kalle.php@gmail.com Received: by 10.107.138.234 with HTTP; Thu, 24 Nov 2016 23:27:24 -0800 (PST) In-Reply-To: <56e89e82-00aa-5521-f014-14cf4d588157@cubiclesoft.com> References: <56e89e82-00aa-5521-f014-14cf4d588157@cubiclesoft.com> Date: Fri, 25 Nov 2016 08:27:24 +0100 X-Google-Sender-Auth: OjWqoB7itv7-5nDdJ9zu0e3aoTQ Message-ID: To: Thomas Hruska Cc: PHP Development Content-Type: text/plain; charset=UTF-8 Subject: Re: [PHP-DEV] Translating optional zval ** with zend_parse_parameters() to PHP 7 From: kalle@php.net (Kalle Sommer Nielsen) Hi Thomas 2016-11-25 4:13 GMT+01:00 Thomas Hruska : > I'm working on updating an extension for PHP 7 compatibility. I have one > function that uses an optional zval ** with zend_parse_parameters(). > > zval **zprevcount = NULL; > int count; > int argc = ZEND_NUM_ARGS(); > > if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|Z", > &zprevcount) == FAILURE) return; > > ... > > if (argc > 0) > { > count = (int)PrevCount; > > zval_dtor(*zprevcount); > ZVAL_LONG(*zprevcount, count); > } > > What's the correct way to translate that into PHP 7? Since you are working with integers, you can do: zend_long prevcount = 0; if(zend_parse_parameters(ZEND_NUM_ARGS(), "|l", &prevcount) == FAILURE) { return; } if(prevcount) { /* ... use prevcount ... */ } Notice that all integers returned from the ZPP is a zend_long, you can see more information about the ZPP in php-src/README.PARAMETER_PARSING_API -- regards, Kalle Sommer Nielsen kalle@php.net