PHP開発者がまとめた9つの提案
原文:https://jellybool.com/post/9-things-that-php-developer-should-know-abo...
本文はただ個人が実際の開発経験からまとめたいくつかのもので、名言警句ではありません.書くには2つの目的があります.1つは、これらの知識点に従って自分のコードを書くことを常に注意することです.2つは、共有するために、あなたに役に立つかもしれません.もしも、そうだったら...
1.主な意識:安全
多くの場合、私たちが開発したWebプログラムはデータベースと付き合う必要があるので、ここでは
簡単に言えば
また、PDOやMysqliを使いましょう.古いmysqlで操作しないでください.
一方、CSRFのソリューションでは、現在接触しているのは、フォームのコミットごとにtoken値を設定し、フォームのコミット時に検証することです.
2.各比較オペレータの違いを明確に知る
PHPの比較オペレータは、実は小さな注意点と言えますが、時には本当に重要です.例えば、多くの場合、
上のコードの実行結果は実は出力
ここでの
3.elseの使用を減らすことができるelseの使用を少なくすることができる
これは私が最初からプログラミングに触れていたような考えです.
もし、
4.不要なかっこを外す
注:この点はあまりよくない習慣のようです.多くの人がコメントの中で指摘していますが、私は壁に立ってみました.
ここでの目的は、
実際には、
あなたはこのようにすることができます.
短くてはっきりした感じがしますか?
5.多用str_replace()
多くの場合、いくつかの文字列を置き換える必要があります.PHPには次の関数があります.
正則マッチングを使用する必要がある場合は
6.三元演算子の使用
これは多くの人がこの感じを持っているかもしれませんが、三元演算子を使った後、if else文を削除することができます.コードは短くて爽やかです.
7.キャッシュの使用
現在PHPで人気のあるキャッシュ技術はRedisとMemcachedかもしれませんが、PHPの公式ドキュメントにはMemcachedの使用チュートリアルもあります.Redisについては、最近研究中ですが、後でチュートリアルを提供します.もしすべてがうまくいけば.
8.フレームの使用
フレームワークのメリットは多く、性能の面で損失がある可能性がありますが、フレームワークを使わない理由が見つからないようです.フレームワークはあなたの開発速度を速めることができ、コードを書く過程でリラックスすることができます.そして、多くの安全問題を考えてみると、あなたはよく解決されます.私はここでLaravelを最初に押しましたが、Yii 2 Slim Symfonyのように素晴らしいフレームワークで、Symfonyが味わったことがない以外は、残りの3つは使用経験があり、最後には基本的にLaravelを使いました.しかし、私が提案したLaravelはあなたに合わないかもしれませんが、これは個人的な好みによって決まります.
9.strlen()の代わりにisset()を使用
プロジェクトコードで文字列の長さに基づいて条件判断を行う必要がある場合は、
以上の2つの条件で同じ目的を達成できると判断しましたが、私がお勧めするのは1つ目です.
Happy Hacking
本文はただ個人が実際の開発経験からまとめたいくつかのもので、名言警句ではありません.書くには2つの目的があります.1つは、これらの知識点に従って自分のコードを書くことを常に注意することです.2つは、共有するために、あなたに役に立つかもしれません.もしも、そうだったら...
1.主な意識:安全
多くの場合、私たちが開発したWebプログラムはデータベースと付き合う必要があるので、ここでは
SQL
はどうしても議論しなければならない問題だと言えます.また近年、XSS
やCSRF
のような攻撃も盛んになり、「ハッカー」たちはまた利器を持っているようで、私たちはいつも受動的な状態にある.しかし、次の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
が判断したので0
がfalse
として処理され、プログラムは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