マニュアル」を参照したことがあるでしょう。したドキュメントは専門用語を知っていることを前提として書かれている部分が多く,戸惑ってしまうかもしれません。今回は,PHPというプログラミング言語で記述可能なものについて説明します。終わるように記述します。実行する方法は,「⁠ちょっとしたこと」を実行するのには向いていますが,それ以上の規模のプログラミングでは無理があります。型(かた)とは,PHP言語で取り扱うことができるデータの種類をいいます。「⁠データ型(がた⁠)⁠」と記されている場合も,指しているものはだいたい同じです。プログラムは,あるデータ(入力)を何らかの方法で処理し,別の形のデータにします(出力⁠)⁠。型の種類を知ることはプログラミングの最も基本といえます。型で決められているのは,扱える値の範囲や種類です。小数点つきの値は浮動小数点数として扱われます。小数点のない値は整数となります。論理値ではTRUEとFALSEの2つしか取り得る値がありません。PHP言語では以下の3種類の型が決められています。変数(へんすう)とは,ある値を別の名前で言い換える(代入する)ために用いられます。$barなどと記述されることが多いですが,PHP言語で決められた範囲で自由に名前をつけることができます。後からソースコードを読み返しても変数の意味がわかるように,プログラムの内容に沿った名前をつけるようにしましょう。変数が用意されているかというと,別々の値に対して同じ処理を施すことがプログラムではよくあるからです。値が変わるたびに同じようなソースコードを何度も作成するのは,面倒で退屈な作業です。変数を使えば違う値を代入するだけでよく,処理を効率的に記述することができます。変数に関連する概念としてスコープ(有効範囲)があります。これは,代入された値が有効である範囲をいいます。後述する関数の中で記述された変数は,その関数内でのみ代入された値が有効になります。同じ名前の変数でも半数の外では別の値が代入されていることもあり得ます。定数(ていすう)とは,ある値につける特別な名前です。変数とよく似ていますが,大きく違うところがあります。変数は同じ名前でも,処理の途中で別の値を代入できるのに対し,定数は一度名前を決めてしまうと(定義すると⁠)⁠,その値を変更できないことです。名前をつける理由は,その値が何を表すのかわからない,ということを防ぐためです。100という数値が書かれているよりも,MAX(最大値)と書いてあるほうが,意味がわかりやすくなることがプログラミングではよくあります。同じ100でも,それがMIN(最小値)だとすると数値の持つ意味がまったく異なり,プログラムでの扱いも変わってきます。意味のある値に名前をつけておくことは,とても重要なのです。式(しき)というと,一般的には計算式,公式,儀式などを思い浮かべるかもしれませんが,プログラミングでいう式はすこし違います。PHPプログラムにおける1つの処理は1つの式といってよいでしょう。それから,いくつかの処理のまとまりも1つの式とみなされることがあります。式には,計算式も含まれますが,一般的な計算式とは少し記述の仕方が違うところがありますので注意が必要です。演算子(えんざんし)は,ある値を別の値に変換する処理(演算)をシンプルに記述するために用いられます。/という四則演算を行う記号は演算子に含まれます。プログラミングの書籍などに出てくる何かの記号を表す用語で,子という字を「し」と読むことがよくあります。演算子は,演算を行うときに用いる記号という意味です。関連する概念として,演算子の優先順位があります。足して,値は11となります。ように記述しなくてはなりません(値は20⁠)⁠。このように,複数の演算子が同時に記述されているときに,どれを先に実行するかは結果に大きく影響します。演算子が記述された処理で思ったような結果を得られないときは,優先順位を確認しなおしてみましょう。PHP言語で用いられる演算子には,以下の3種類があります。(せいぎょこうぞう)は,まず制御と構造とに分けて考えます。制御とは,プログラムにおける処理の流れを操ることです。日常生活でも「信号が赤なら止まる」など,状況に応じて行動を変えることがよくありますが,プログラミングでもやはり状況に応じて処理の流れを変えることはよく行われます。構造とは,ある意味を持った処理のまとまりをいいます。平常時に行う処理と何か異常が起きたときの処理とは,それぞれ別のまとまりとなります。よって両者は別の構造ということができます。複数の構造をまとめた構造というのもありますので,構造にはどの位置に記述されているかという意味も含まれます。そこで制御構造ですが,状況に応じて複数の処理の流れがあり得るときに持たせる構造ということになります。何か異常が起きたときと,そうでないときには別々の構造になるようにプログラムを記述しておき,「⁠どんな状況のときにどの部分が処理されるのか」をわかるようにしておくためのものと言えます。関数(かんすう)とは,処理のまとまりに名前をつけたものです。することで,処理のまとまりが複雑になるときに一部を関数として切り出したり,何度も同じ処理を行う場合に,処理の内容をわかりやすく効率的に記述することができます。名前には変数や定数とは異なる役割があります。それは,別の処理の中でその名前を使って関数が実行されるということです。呼び出すほうの処理からは,関数に対して引数(ひきすう)という値をはじめに提供します。関数はそれらを用いた処理を行い,結果を戻り値(もどりち)として呼び出し元に提供します。引数は複数の値を記述できますが,戻り値は1つのみです。戻り値で複数のデータを提供する場合は,複合型を用いることになります。クラスクラスは,PHP言語ではバージョン4から導入されたものですが,バージョン5になって新たな機能が多く追加されていますので,どのバージョンのPHPでプログラミングするかに注意して記述する必要があります。この連載で用いているのはバージョン5です。クラスには変数と関数が含まれます。PHP言語では,クラス内に記述される変数をメンバ,関数をメソッドといいます。クラスは最初から作成するだけでなく,すでに作成済みのクラスに新たな機能を追加して別のクラスとする継承や,呼び出せる相手を制限するアクセス権の設定などが可能です。例外とは,プログラム内で発生した何かの異常をいいます。PHP言語ではExceptionクラスを元にして定義されています。処理系に組み込まれた例外もありますが,アプリケーションで独自の例外を作成することもできます。次回からは,これらを具体的に記述してPHPプログラミングを実践していきます。PHP著者プロフィール沖林正紀(おきばやしまさのり)SE/プログラマを経て,WebアプリケーションやXMLなどについて雑誌記事や書籍の執筆活動を始める。大手メーカで製品資料の作成や,セミナーの講師を担当したこともある。現在は,取材記事や製品レビューなどに執筆活動の幅を広げる一方,プログラミング教材の開発も手がけている。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。