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";
}