Web制作、Webサービスに関する技術やノウハウを発信するコラムサイト

プログラムでよくやるおっちょこちょいミス集[PHP編]

  • このエントリーをはてなブックマークに追加

こんにちは、株式会社8bitの高本です。

最近はプログラミングしかしていないので、今回はプログラムについて書きます。

プログラムを作ってデバッグしていると、どんな熟練の方でもケアレスミスはするかと思います。
リリースされるときにはそれはすべて解消されているので分かりませんが、作っている段階では誰もがおっちょこちょいミスをしていると思います。

そこで、自分も含めて社内でもよくあるおっちょこちょこミスを列挙してみました。
ブラウザで500エラーとか表示されてしまうと、どこが悪いのか分からずに気が狂いそうになったりしますが、大抵がこのおっちょこちょいミスだったりすることが多いです。

現在PHPしかいじってないので、PHP限定になります。
こんなミスなんてしないよ!と思われる方もいらっしゃると思いますが悪しからず。

1. if文の比較演算式の「=」が「==」になっていない。

ここの判定で値はきちんと入っているのに、正しく判定されない!などよくありますが、たまに「==(比較)」を「=(代入)」にしてしまっているときがあります。

※ ●●以上などの演算子も逆にしていたりすることもあります。「>=」が「=>」。
(プログラム覚えたての人が混乱したときにやっているのを見ました。)

2. 最後に「;」が付いてない。

Web系の言語だと文の後に「;」を付けるので、間違えませんが、代入文をコピペしたときにぎりぎり文末の「;」が入っていなかった、などということはあります。
VBとC言語を交互にやったりしていたときには頻繁に「;」のつけ忘れをしたような気がします。

3. ifやfor文が「}」で閉じてない。

結構あります。いや、かなりあります。
500エラーが出るときは個人的にはこれが多いです。

4. 変数名に「$」が付いてない。

これもコピペしてきたりしたときに時々あります。

5. タグをechoで表示するときに「”」をエスケープしてない。

echoなどでタグを吐き出すときに属性が沢山着いているタグだとこういうことがよくあります。
あんまり長いタグだとどこがどうなってんのかよく分からなくなるときもあるので、効率のよい書き方をしないといけないですね。

6. フォームなどでhtmlspecialcharsを使ってない。

Webサイトなどのフォームではこれは結構重要です。
HTMLタグに含まれる文字列を入力されたときに変換してあげる処理です。

これをやらないと入力された情報を表示したときにレイアウトがガクガクに崩れたりするのでご用心です。
これも結構忘れます。

7. 無限ループ breakしてない。

これはおっちょこちょいでは済まされない場合もありますが、リリース前であればおっちょこちょいにぎりぎり入るかと。
最近はあまりやりませんが、プログラム覚えた時に無限ループをよくやっていたので挙げてみました。

8. switch文のdefault値が指定されていない。

必ず入ってくる想定した値だけを指定して、nullだった場合などを想定していない値の処理を指定しないことはよくあります。

=========

あくまで個人的なものと社内でのミスの傾向ですので、これだけではないと思います。
作る方の癖もあると思うので、色々なおっちょこちょいミスがあると思います。

作っているときはおかしいおかしい、どこがおかしいのか検討も付かない!など取り乱してしまうこともあるかと思いますが、冷静になるとこんな感じのミスの積み重ねだったりします。

では、そもそもこういうミスをなくすには、というと自分の作ったテンプレートや関数を流用(ストック)していくことかも知れません。
新規で書き出すと誰にでも間違えは起こります。

あんまりバグが治らないと環境のせいとかにしたくなりますが、プログラムは書かれた通りのことしかしません。

冷静に対処したいものです。

執筆者:高本

株式会社8bit 取締役の高本です。 社内のWebサービス企画、プログラミングや、売上・請求管理にいたるまで幅広く担当しております。

関連記事

マークアップ

SharePoint クラシックUIの通知機能をPower Automateで再現する

SharePoint サイトをモダンUIへ移行すると、よく耳にするのが「クラシックUIにあった通知機能を使いたい」という声です。しかし、モダンUIにはクラシック時代のような「標準の通知機能」が用意されていません。 そこで活躍するのが「Power Automate」です。クラシック通知の代わりとして、リストの変更を自動で検知し、メールで知らせる仕組みを簡単に構築できます。 本記事では、クラシックUIの通知に近い形で、Power Automate を使ったメール通知フローを作成す […]

Webサイト制作

制作会社が考える、WordPressとオリジナルCMSの選定ポイント

弊社では「WordPress」を使った制作と、弊社のオリジナルCMSツール「ProG(プログ)」を使った制作の、いずれについても多くのご相談をいただいています。 それぞれにメリットがある一方で、運用時に気を付けるべき点もあり、サイトの目的や運用方法によって向き・不向きがあります。 この記事ではそれぞれの特徴を整理しながら、WordPressとオリジナルCMSを併用できるケースについてもご紹介します! 目次1 WordPressを使用するメリット1.1 多機能で自由度が高い1. […]

WordPress

本当に使う機能だけを残した、シンプルなWordPressのSEOプラグインを作成しました

WordPressでSEO周りの設定が簡単にできる、SEOプラグイン。 SEO対策には便利ですが、設定項目が多すぎて「どこを触ればいいのか分からない」と感じることはないでしょうか? そこで今回、社内の案件用にシンプルなSEOプラグインを作成してみました。 『最低限の設定のみでシンプルに』というのが今回のテーマです。 今回の記事では「どんな考え方で設計したのか」といった、制作背景などを紹介していきます。 ※本記事ではコードの全公開やダウンロードは行いません 追記:無事リリースで […]

株式会社8bit (エイトビット)

東京都目黒区でWebサイト制作、Webシステム開発などを行っております。
コーポレートサイトやWebサービスの企画・提案を得意としており、自社での経験を元にアイデアをカタチにするお手伝いをさせていただいております。

Web制作に関するご相談はお気軽にどうぞ

弊社に制作をご依頼いただく際の費用感をご確認いただける、
見積りシミュレーションをご用意いたしました。