PHP语法在函数上出错,不知道为什么


PHP syntax error in function, don't know why

我遇到了语法错误,我不知道为什么。"解析错误:语法错误,第 6 行出现意外的'{'"

function ExtractCustomField($fieldName, $customFields) {
// $customFields might be an object, NULL, or an array.
$parsed = array();
if (is_array($customFields) == false && $customFields != null) {
$parsed = array($customFields);
} else (is_array($customFields)) {
$parsed = $customFields;
}
// loop through the fields and find the one we are looking for
$returnField = null;
foreach($field as $customFields) {
if ($field->Name == $fieldName) {
$returnField = $field;
break;
}
}
return $returnField
}

你忘了在$returnField后面放分号,也用elseif代替else(else不需要任何参数)。使用以下代码

function ExtractCustomField($fieldName, $customFields) {
// $customFields might be an object, NULL, or an array.
$parsed = array();
if (is_array($customFields) == false && $customFields != null) {
$parsed = array($customFields);
} elseif (is_array($customFields)) {
$parsed = $customFields;
}
// loop through the fields and find the one we are looking for
$returnField = null;
foreach($field as $customFields) {
if ($field->Name == $fieldName) {
$returnField = $field;
break;
}
}
return $returnField;
}

希望这对你有帮助

else后面

不带任何表达式。删除表达式或改用elseif

你错过了分号 作为回报

return $returnField;
}

否则条件else (is_array($customFields))格式是错误的....否则不要在它之后采取任何条件...你可以改用 Elseif

else (is_array($customFields)) {

无效。如果或移除条件,请使用其他任一方式

function ExtractCustomField($fieldName, $customFields) {
// $customFields might be an object, NULL, or an array.
$parsed = array();
if (is_array($customFields) == true && $customFields != null) {
$parsed = array($customFields);
} else {
$parsed = $customFields;
}
// loop through the fields and find the one we are looking for
$returnField = null;
foreach($field as $customFields) {
if ($field->Name == $fieldName) {
$returnField = $field;
break;
}
}
return $returnField;
}
它应该 else if(is_array($customFields))

或 elseif(is_array($customFields))

我已经修改了你的函数,我看到应该有 else 而不是 else,在 foreach 循环中,你代码中的语法是错误的。我还假设您将使用单级关联数组。

<?php
    function ExtractCustomField($fieldName, $customFields) {
            // $customFields might be an object, NULL, or an array.
            $parsed = array();
            if (is_array($customFields) == false && $customFields != null) {
                $parsed = array($customFields);
            } elseif (is_array($customFields)) {
                $parsed = $customFields;
            }
            // loop through the fields and find the one we are looking for
            $returnField = null;
            foreach($customFields as $field) {
                if ($field == $fieldName) {
                    $returnField = $field;
                    break;
                }
            }
            return $returnField;
        }
        echo ExtractCustomField('name', array('name','emial','mobile','password'));
?>