Фатальная ошибка: Uncaught Ошибка: имя функции должно быть строкой в ​​php / class-style-generator.php - PullRequest
0 голосов
/ 05 марта 2019

У меня есть следующие ошибки на двух сайтах:

Неустранимая ошибка: необученная ошибка: имя функции должно быть строкой в ​​/ home / lanesra2 / public_html / wp-content / themes / Lanesra/framework/php/class-style-generator.php:123 Трассировка стека: # 0 /home/lanesra2/public_html/wp-includes/class-wp-hook.php(286):

Я не заходил на сайты целую вечность, как вы видите, оба построены на WordPress.Любые потенциальные изменения, которые могут это исправить?

Вот код тоже:

{
            foreach($this->rules as $rule)
            {

                $rule['value'] = str_replace('{{AVIA_BASE_URL}}', AVIA_BASE_URL, $rule['value']);
                $rule['value'] = preg_replace('/(http|https):\/\//', '//', $rule['value']);

                //check if a executing method was passed, if not simply put the string together based on the key and value array
                if(isset($rule['key']) && method_exists($this, $rule['key']) && $rule['value'] != "")
                {
                    $this->output .= $this->$rule['key']($rule)."\n";
                }
                else if($rule['value'] != "")
                {
                    $this->output .= $rule['elements']."{\n".$rule['key'].":".$rule['value'].";\n}\n\n";
                }

            }
        }

1 Ответ

0 голосов
/ 05 марта 2019

проверьте, что переменная является строкой , и не только установлена, но, в частности, также является строкой.

if(is_string($rule['key']) && method_exists($this, $rule['key']) && $rule['value'] != "")

Альтернатива:

Счуть короче пишешь и на один аргумент меньше.Это заставляет значение быть строкой, несмотря ни на что;это зависит от вашей кодовой базы, если это желательно для вас.

if(method_exists($this, (string)$rule['key']) && $rule['value'] != "")

Имейте в виду, что этот ответ не решает проблему, заключающуюся в том, что иногда ваша функция имеет дело с нестроковыми в качестве потенциальных методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...