目次

前のトピック

< 最適化

次のトピック

ライセンス >

このページ

コンパイラの警告

コードが改善できるか潜在的なエラーが避けられる箇所をコンパイラが見つけた時に、コンパイラは警告を上げます。

警告はコマンドライン パラメータあるいは恒久的にそれらを有効あるいは無効にするためにconfig.jsonに追加することで、警告を有効にすることができます:

-w を前に付けた名前を渡すことで警告を有効にすることができます:

zephir -wunused-variable -wnonexistent-function

-W を前につけた名前を渡すことで警告を無効にすることができます:

zephir -Wunused-variable -Wnonexistent-function

以下の警告がサポートされます:

unused-variable

変数が宣言されているが、メソッド内で使われていない場合に上げられます。この警告はデフォルトで有効にされています。

public function some()
{
    var e; // 宣言されたが使われていない

    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 が存在しない
}

nonexistent-class

コンパイル時に存在しないクラスが使われる時に上げられます:

public function some()
{
    var a;

    let a = new \MyClass(); // MyClassが存在しない
}

non-valid-isset

非配列あるいはオブジェクト値上で ‘isset’ オペレーションが行われることをコンパイラが検知する時に上げられます:

public function some()
{
    var b = 1.2;
    return isset b[0]; // 変数 integer 'b' が配列として使われた
}

non-array-update

非配列値上で配列の更新オペレーションが行われることをコンパイラが検知する時に上げられます:

public function some()
{
    var b = 1.2;
    let b[0] = true; // 変数 'b' は配列として使うことはできません
}

non-valid-objectupdate

非オブジェクト上でオブジェクトの更新オペレーションが行われることをコンパイラが検知する時に上げられます:

public function some()
{
    var b = 1.2;
    let b->name = true; // 変数 'b' はオブジェクトとして使うことができません
}

non-valid-fetch

非配列あるいはオブジェクト値上で ‘fetch’ オペレーションが行われることをコンパイラが検知する時に上げられます:

public function some()
{
    var b = 1.2, a;
    fetch a, b[0]; // 変数 integer 'b' が配列として使われた
}

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";
}
TOP
inserted by FC2 system