Предупреждения компилятора
Компилятор выдает предупреждения, когда находит ситуации, в которых можно улучшить код или избежать возможной ошибки.
Предупреждения могут быть включены через параметры командной строки, или могут быть добавлены в config.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";
}