2010-09-16 14 views
5

मेरे पास कोड का एक निश्चित टुकड़ा है जिसे मैं PHP संस्करण 5.2.14 के साथ उपयोग करने का प्रयास कर रहा हूं। क्या यह असंगत है ?? मैं, निम्नलिखित चलानेPHP संस्करण 5.2.14/पार्स त्रुटि: वाक्यविन्यास त्रुटि, अप्रत्याशित T_FUNCTION, '

jailshell-3.2$ php -l /XYZ/functions.php 

और यह देता है:

Parse error: syntax error, unexpected T_FUNCTION, expecting ')' in /XYZ/functions.php on line 2115 Errors parsing /XYZ/functions.php

कोड है:

2114 $range = array_map(
2115    function (DatePeriod $p) use ($vt2) { 
2116    $res = array(); 

उत्तर

6

आपका कोड anonymous functions जो पीएचपी 5.3 में समर्थित थे उपयोग करता है। इसलिए, इसे काम करने के लिए आपको PHP 5.3 की आवश्यकता है। अपने सर्वर की PHP स्थापना को अपग्रेड करें।

बेनामी फ़ंक्शन, जिन्हें क्लोजर के रूप में भी जाना जाता है, उन कार्यों के निर्माण की अनुमति देता है जिनके पास कोई निर्दिष्ट नाम नहीं है।

4

आप anonymous functions का उपयोग कर रहे हैं जो PHP 5.3.0 से उपलब्ध हैं।

इसे हल करने के लिए आप अपने उत्तर को अन्य उत्तरों में सुझाए गए अनुसार अपग्रेड कर सकते हैं।

वैकल्पिक रूप से आप array_map बाहर समारोह को परिभाषित कर सकते हैं और फिर array_map

1

करने के लिए कॉल में है कि समारोह के नाम का उपयोग मुझे लगता है कि लैम्ब्डा शैली समारोह अभी तक में 5.2

उपयोग create_function लागू नहीं है या सिर्फ समारोह बनाने और इसे function name in array_map पास करें।

3

php पुस्तिका से Anonymous Functions पर:

Note: Anonymous functions are available since PHP 5.3.0.

पहले 5.3.0 करने के लिए, इस तरह यह कार्य करें:

$range = array_map("name_of_function_to_call", $myArray); 
संबंधित मुद्दे