PHP開発者がまとめた9つの提案


原文:https://jellybool.com/post/9-things-that-php-developer-should-know-abo...

本文はただ個人が実際の開発経験からまとめたいくつかのもので、名言警句ではありません.書くには2つの目的があります.1つは、これらの知識点に従って自分のコードを書くことを常に注意することです.2つは、共有するために、あなたに役に立つかもしれません.もしも、そうだったら...
1.主な意識:安全
多くの場合、私たちが開発したWebプログラムはデータベースと付き合う必要があるので、ここではSQL はどうしても議論しなければならない問題だと言えます.また近年、XSSCSRFのような攻撃も盛んになり、「ハッカー」たちはまた利器を持っているようで、私たちはいつも受動的な状態にある.しかし、次の2つの原則を覚えておいてください.
1.              。(   ,     )
2.               。


簡単に言えばfilter input , escape output初心者の場合は、次のようなクエリー文を使用しないでください.
SELECT FROM users WHERE username = $_POST['username'] AND password = $_POST['password'];


また、PDOやMysqliを使いましょう.古いmysqlで操作しないでください.
一方、CSRFのソリューションでは、現在接触しているのは、フォームのコミットごとにtoken値を設定し、フォームのコミット時に検証することです.
2.各比較オペレータの違いを明確に知る
PHPの比較オペレータは、実は小さな注意点と言えますが、時には本当に重要です.例えば、多くの場合、==を使うべきか、それとも===を使うべきかをよく考えなければなりません.もしあなたがstrpos()という関数を使ったことがあれば、次のコードは直感的な感じを与える可能性があります.

上のコードの実行結果は実は出力Chris is not an authorですが、現実的にはChris & Seanは本当にAuthorですね.どうやって返しますか.実は、ChrisはちょうどChris & Seanの先頭、つまり0という位置に現れたのでsubstr()が戻ってきて、条件判断文でboolが判断したので0falseとして処理され、プログラムはChris is not an authorを出力しましたが、この場合私たちはどうすればいいのでしょうか.私たちは実際にこのようにすることができます.

ここでの!==!=の違いが表れている.
3.elseの使用を減らすことができるelseの使用を少なくすることができる
これは私が最初からプログラミングに触れていたような考えです.if(){}else{}を見るたびに、elseを使うのを減らすと、コードが2行減るからです.そうですね.2行も私たちの追求です.そして、私の経験から見ると、else少ないコードは可読性が高いようです.私にとって.
if( this condition )
{
$x = 5;
}
else
{
$x = 10;


もし、$xのデフォルト値が10だったら、次のように書いたほうがいいです.
$x = 10;
if( this condition )
{
$x = 5;
}


4.不要なかっこを外す
注:この点はあまりよくない習慣のようです.多くの人がコメントの中で指摘していますが、私は壁に立ってみました.
ここでの目的は、elseキーワード部分と同じです.私たちは、より短いコードとより優れた可読性のために、以下の場合、コードの最適化を考慮する必要があります.
if ($gollum == 'halfling') {
$height --;
}


実際には、
if ($gollum == 'halfling') $height --;


あなたはこのようにすることができます.

if ($gollum == 'halfling') $height --; else $height ++; if ($frodo != 'dead') echo 'Gosh darnit, roll again Sauron'; foreach ($kill as $count) echo 'Legolas strikes again, that makes' . $count . 'for me!';

短くてはっきりした感じがしますか?
5.多用str_replace()
多くの場合、いくつかの文字列を置き換える必要があります.PHPには次の関数があります.
str_replace()
ereg_replace()
preg_replace()


正則マッチングを使用する必要がある場合はpreg_replace()を使用しますが、置換が可能な場合はstr_replace()を使用します.不完全な統計によると、str_replace()の効率はこの3つの中で最も高いからです.
6.三元演算子の使用
これは多くの人がこの感じを持っているかもしれませんが、三元演算子を使った後、if else文を削除することができます.コードは短くて爽やかです.
$host = strlen($host) > 0 ? $host : htmlentities($host);


7.キャッシュの使用
現在PHPで人気のあるキャッシュ技術はRedisとMemcachedかもしれませんが、PHPの公式ドキュメントにはMemcachedの使用チュートリアルもあります.Redisについては、最近研究中ですが、後でチュートリアルを提供します.もしすべてがうまくいけば.
8.フレームの使用
フレームワークのメリットは多く、性能の面で損失がある可能性がありますが、フレームワークを使わない理由が見つからないようです.フレームワークはあなたの開発速度を速めることができ、コードを書く過程でリラックスすることができます.そして、多くの安全問題を考えてみると、あなたはよく解決されます.私はここでLaravelを最初に押しましたが、Yii 2 Slim Symfonyのように素晴らしいフレームワークで、Symfonyが味わったことがない以外は、残りの3つは使用経験があり、最後には基本的にLaravelを使いました.しかし、私が提案したLaravelはあなたに合わないかもしれませんが、これは個人的な好みによって決まります.
9.strlen()の代わりにisset()を使用
プロジェクトコードで文字列の長さに基づいて条件判断を行う必要がある場合は、isset()を直接使用することをお勧めします.同じ条件の後、isset()の速度はstrlen()の5倍程度なので、
= 6) {
    // The username is at least six characters long.
}



以上の2つの条件で同じ目的を達成できると判断しましたが、私がお勧めするのは1つ目です.
Happy Hacking