2

連結ドットは複数行の文字列を結合することだといつも思っていました。しかし、今日、次のことを行うのに問題が発生しました。

if (strlen($col->getValue())>$col->getLength())
          $this->errors[]=$name." ist ".
          strlen($col->getValue())-$col->getLength().
          " too much chars!";

これは if 節の後の 1 行だと思っていましたが、ここで条件が指定されていない場合でも、PHP は if 節の後の 2 行目と 3 行目を評価しました。私はいくつかをする必要がありました

if (strlen($col->getValue())>$col->getLength()) {
          $this->errors[]=$name." ist ".
          strlen($col->getValue())-$col->getLength().
          " Zeichen zu lang!";
}

奇妙なパーサーエラーの代わりに正しい結果を得るために括弧を付けます。concatenation-Sign の使い方が間違っていることを理解していますか? クラスで複数行の定数を作成するときに同じことに気付きました(iEはSQLステートメントを準備しました)。

ここで私が間違っていることを誰かが知っていますか。私が見ていないポイントはありますか?

4

2 に答える 2

4

中かっこを使用しないという恐ろしい慣行を使用しているからですif。条件に続く最初の行のみが条件の一部と見なされます。

于 2013-02-18T15:49:12.343 に答える
3

この式を括弧で囲む必要があります。

(strlen($col->getValue())-$col->getLength())
于 2013-02-18T15:49:24.913 に答える