ホームページ >php教程 >php手册 >php の場合に頭に浮かぶいくつかの質問

php の場合に頭に浮かぶいくつかの質問

WBOY
WBOYオリジナル
2016-06-21 08:55:43781ブラウズ

それほど複雑ではないスクリプトを書いているときに、問題を発見しました。まずコードについて説明しましょう。その主な機能は、PHP を使用して Javascript を生成するかどうかを決定し、Cookie を使用してステータスを記録することです

/* PHP コード */

header("Content-type: text/javascript");

if (!haveCookie('cookieName')) {

// ... 何かをする

?>

/* Javascript コード */

if ('未定義' == typeof document.cookie['cookieName']) {

setCookie('cookieName', 3600);

}

// ... Javascript で何かを実行します

}

?>

一見するとコードは完璧に見えますが、親愛なる Xiao Ma がまだ問題を発見しました。 Javascript におけるその判断は常に真です

if ('未定義' == typeof document.cookie['cookieName']) {

// ...

}

このコードには PHP 側の前提条件があるため、

(!haveCookie('cookieName'))の場合、クライアントに表示されます。そして、この条件が満たされない場合、当然このコードはクライアントにスローされません。これを言うのは少し一般的だと思われるので、最初に Javascript コードを脇に置き、PHP コードを使用してそれを表現しましょう

header("Content-type: text/javascript");

if (!haveCookie('cookieName')) {

if (!haveCookie('cookieName')) {

setCookie('cookieName');

}

}

?>

これにより、非常に明確になり、問題を見つけるのが簡単になります。これはクライアント側の Javascript によって実行されますが、うっかりもう 1 つの判断を下してしまいました。

このコードから私が考えたいくつかのナンセンスを要約すると、次のとおりです。

1. コードが長いほど効率が上がらない可能性があります

2. ロジックやプロセスに影響を与えずに、複数の判断をまとめて書いてみます

3. 複雑さの低い関数を判断の前に置くようにしてください

4. 判定が多すぎると、プログラムの効率が低下しやすくなります。判定に時間計算量の高い関数を使用する場合は特に注意してください。

5. if が入れ子になりすぎている場合は、プロセスとアルゴリズムを再考する必要があります

6. 過剰な判断は堅牢なコードを保証しない

7. コードを単純化すると、多くの未発見の問題が見つかるでしょう

8. 別の観点から理解すると、過度の判断はコードに対する自信の欠如です




声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。