Предупреждения компилятора

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

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