문자열이어야합니다, 나는 7PHP 5.3 함수 이름은 내가이 줄에 오류 <code>Function name must be a string</code>있어
public static $renderers = array();
public static function somefunction($tpl, $params)
{
return self::$renderers[$tpl]($params);
}
문자열이어야합니다, 나는 7PHP 5.3 함수 이름은 내가이 줄에 오류 <code>Function name must be a string</code>있어
public static $renderers = array();
public static function somefunction($tpl, $params)
{
return self::$renderers[$tpl]($params);
}
당신은에 폐쇄를 할당 할 필요가이 라인은 PHP로 작성된 때문에 호환성 문제가있을 수 있습니다 생각 변수를 먼저 실행하기 전에,
$foo = self::$renderers[$tpl];
$foo($params);
그리고 설명에 따르면 PHP 7.0+가 변수 표현식을 구문 분석하는 방식이 변경되었습니다. http://php.net/manual/en/migration70.incompatible.php#migration70.incompatible.variable-handling 여기에 설명되어 있으며 https://wiki.php.net/rfc/uniform_variable_syntax 여기에 설명되어 있습니다. –
질문이 있으십니까? – Quentin
@Quentin 예 문제가 무엇인지 알고 싶습니다. – Abudayah
PHP7에서 제대로 작동합니다. https://3v4l.org/klC6l이 코드가 현재 진행중인 작업을 정확히 나타내지 않으면 문제를 재현하기 위해 실행할 수있는 코드를 제공하십시오. 네가 PHP5에서 그것을 실행한다면, 그것은 호환성 문제이다. –