023 Предупреждения компилятора
Компилятор выдает предупреждения при обнаружении ситуаций, в которых можно улучшить код или избежать потенциальной ошибки.
Предупреждения можно включить через параметры командной строки или добавить в конфигурацию.JSON, чтобы включить или отключить их раз и навсегда.
Предупреждения можно включить, передав их имена с префиксом -w:
zephir -wunused-variable -wnonexistent-function
Предупреждения можно отключить, передав их имена с префиксом -W:
zephir -Wunused-variable -Wnonexistent-function
Поддерживаются следующие предупреждения:
unused-variable
Возникает, когда переменная объявлена, но не используется в методе. Такое предупреждение включено по умолчанию.
public function some() { var e; // declared but not used return false; }
unused-variable-external
Вызывается, когда параметр объявлен, но не используется в методе.
public function sum(a, b, c) // c is not used { return a + b; }
possible-wrong-parameter-undefined
Вызывается при вызове метода с неправильным типом для параметра:
public function some() { return this->sum("a string", "another"); // wrong parameters passed } public function sum(int a, int b) { return a + b; }
nonexistent-function
Возникает при вызове функции, которая не существует во время компиляции:
public function some() { someFunction(); // someFunction does not exist }
nonexistent-class
Вызывается при использовании класса, который не существует во время компиляции:
public function some() { var a; let a = new \MyClass(); // MyClass does not exist }
non-valid-isset
Вызывается, когда компилятор обнаруживает, что операция isset выполняется над значением, отличным от массива или объекта:
public function some() { var b = 1.2; return isset b[0]; // variable integer 'b' used as array }
non-array-update
Вызывается, когда компилятор обнаруживает, что операция обновления массива выполняется для значения, отличного от массива:
public function some() { var b = 1.2; let b[0] = true; // variable 'b' cannot be used as array }
non-valid-objectupdate
Вызывается, когда компилятор обнаруживает, что выполняется операция обновления объекта для значения, не являющегося объектом:
public function some() { var b = 1.2; let b->name = true; // variable 'b' cannot be used as object }
non-valid-fetch
Вызывается, когда компилятор обнаруживает, что операция' fetch ' выполняется над значением, отличным от массива или объекта:
переменная целое число 'b' используется в качестве массива
public function some() { var b = 1.2, a; fetch a, b[0]; }
invalid-array-index
Вызывается, когда компилятор обнаруживает, что используется недопустимый индекс массива:
public function some(var a) { var b = []; let a[b] = true; }
non-array-append
Возникает, когда компилятор обнаруживает, что элемент добавляется в переменную не массив:
public function some() { var b = false; let b[] = "some value"; }