1 -2 アプリケーションが動くには いでしよう。 いろいろな言語を勉強して、最終的に自分の好みにあったものを選択するとよ なプログラミング言語 ( コンパイラ言語、インタブリタ言語問わす ) があるため、 非常に学習が容易な言語として有名ですが、コンピュータの世界にはさまざま め、 C 言語などから比べるとダイナミックな処理を行うことができます。 PHP は 今回学習する PHP という言語はこのインタブリタ方式を採用した言語のた もあります。 行っているため、コンパイラ言語ほど高速に処理が行われないというデメリット 一方、ソースコードの解釈と CPU に対しての実行はインタブリタが 1 行づつ であることが多いです。 み込まなくとも実行できるため、非常にダイナミックな ( 動的に変化する ) 言語 が停止しそれ以降の処理の解釈を行わなくなります。ソースコードをすべて読 ソースコード中に間違いがあった場合、インタブリタ言語では、インタブリタ ます。 コードを必要としない」 ( ソースコードさえあれば動作可能 ) という利点があり
プログラミングの基礎知識と Web アプリケー 第 1 章 ション ています ( 注① -7 ) 。 正確には、文法上の間違いはなく また、コンパイラ言語は一度にすべてのバイナリを生成するため、実行時には ても、作った人が意図しなかった 生成された命令が一括して CPU に渡ります。こうした特性からプログラムはと 動作をしてしまうというバグはあ ります。 ても高速に処理されますが、ソースコードで定義したデータの種類 ( データ型 ) を状況に応じて変化させるなど、ダイナミック ( 動的 ) な機能を持つものは多く ありません。 注① -7 プログラムとは何か②インタブリタ型言語 一方、コンパイラ型言語と対比される言語に 吾というものか あります。 インタブリタ言語はコンパイラ言語と違い、コンパイラによるバイナリの作成 を必要としない言語です。インタブリタ言語の場合、プログラムを実行するとき にソースコードをインタブリタと呼ばれるプログラムに引き渡します。このイン タブリタがソースコードの処理命令をその場で機械語に翻訳し、プログラムの 実行を行うのです。 図① -11 インタブリタ型言語による開発 ソースコード 2 0 ー a fuction hoge ( f00 ) { var 土ー 土 = getNum(f00) ー return 土十 a; 1 行ずつ読み込み インタブリタ 型 タ プ タ ン イ KEYWORD ・インタブリタ型言語 ・インタブリタ 0 逐次実行 CPU 代表的な言語には本書で解説する「 PHP 」のほか、「 perl 」や「 python 」、「 Ruby 」、 「 Basic 」などがあります。 ソースコードを 1 行づつ読み込んで実行するという特徴から、インタブリタ言 語には「ソースコードが不完全であっても実行できる」、「バイナリなどの中間
2-1 PHP とは 第 2 章 PHP と Web アプリケー ション 2-1 PHP とは 五ロ な ん ど と 学習のポイント ・ PHP はサーバーサイドアプリケーションの開発に向いたプログラー ニンク、言・ き五 ・コンヾイル型言語ではなくインタブリタ型の言語である ・静的言語ではなく動的言語の仲間である ・ PHP は Web 用にデザインされており、 Web アプリケーション用の機能を多 数備えている ・ PHP は HTML 内に埋め込んでプログラムを書くことができる ・ PHP インターネットの掲示板やコミュニティサイト、プログなどで利用される ・多くの有名なサイトで PHP が利用されている ・ 3D プログラミングや音声 / 音楽を扱うのは得意ではない PHP の特徴 PHP の利用範囲 KEYWORD インタブリタ型言語・・・コンバイル型言語のように実行用のバイナリを作るの ではなく、ソースコードをインタブリタが解釈しながら実行していく言語 動的型言語・・・プログラムを解釈する際の状況に応じて動作が変化する言語 Web サービス・・・ Web アプリケーションを使って利用されるインターネットの サービス PHP とはどんな言語か 前章では、 OS とアプリケーションプログラムの関係、プログラムの開発方法、 Web アプリケーション仕組みについて説明してきました。ーこからは、本書の メインテーマである PHP について説明していきます。 PHP はサーバーサイドアプリケーションの開発に特化したプログラミング言 KEYWORD ・ PHP ・サーバーサイドアプリケー ション
・ 72 プログラミングの基礎知識と Web アプリケー 第 1 章 ション プログラムとは何か①コンパイル型言語 それでは次に、プログラム開発の流れと開発方式の違いについて説明しま しよう。 先ほどまでの説明にあったように、プログラムは基本的にバイナリでできてい ます。このバイナリは CPU が解釈できる機械語 ( マシン語 ) の集まりで、どういっ た処理をすべきなのか機械に解釈できる言葉で書いてあります。 プログラムを作るには、まず人間が解釈できる言葉で書かれたソースコード と呼ばれるものを用意します。これは各種のプログラミング言語で記述された 処理命令のテキストファイルで、これをコンパイラで機械語に「翻訳」します。 CPU は人間が書いたソースコードを解釈できないため、コンパイラがソース コードから機械語への翻訳機能を担います。 図① -8 コンバイラ型言語による開発 ソースコード int hoge (char f00 ) { 土 n セ a; a = getNum(foo) ー if (a く 1 の { 10 ー a return a; KEYWORD 語 グ ドン スグ 一口 ソースコードの解析 コンバイラ 機械語へ変換 バイナリ 0 010010110 100111011 001010101 010110111 001010.. 一括実行 CPU このように機械語に翻訳されたバイナリの作成を前提としたプログラミング 吾と呼ばれます。代表的な言語には C 言語や Java などが iäロロ あります。コンパイラ言語の特徴は、コンパイラが解釈可能 ( コンパイル可能 ) なソースコードを必要とすることです。このソースコードに 1 カ所でも間違いが あると、コンパイルは失敗してバイナリの生成も行われません。このため、ソー スコード中のほとんどの間違いがコンパイル時に検出されるという特性を持っ イ ン コ KEYWORD ・コンバイラ型言語
この章のテーマ 本書では PHP というプログラミング言語を利用してコンピュータのプログラムを 作るための方法を勉強します。第 1 章では、プログラムはコンピュータ上でどう動 くのか、その基本的な仕組みを説明します。まず、コンピュータのシステムの構成 要素を、ハードウェアとソフトウェアに分けるところから考えていきましよう。 また、 PHP が開発の対象とする「 Web アプリケーション」の仕組みについても説 明します。昨今、多くの Web アプリケーションが作られるようになりプログラミン グの一潮流となっています。 PHP を学ぶために、 Web アプリケーションの仕組み を知っておくことはとても大切です。 l-l OS とアプリケーション 「ハードウェアとソフトウェア 〇 S は何をするのか①ハードウェア制御 〇 S は何をするのか②ソフトウェア制御 1-2 アプリケーションが動くには 「アプリケーションが動くには、〇 S が解釈できるプログラムが必要 プログラムとは何か①コンバイル型言語 プログラムとは何か②インタブリタ型言語 1-3 Web アプリケーションについて知ろう Web アプリケーションとローカルアプリケーション Web アプリケーションの特徴① HTML Web アプリケーションの特徴②言語 Web ブラウザ内で動くプログラム クライアントサイドプログラムの動作 KI : サーバーサイドプログラムの実行①パフォーマンス サーバーサイドプログラムの実行②リクエスト この章を学習すると以下の知識をマスターできます。 ・コンピュータを構成する 2 つの要素 ( ソフトウェアとハードウェア ) ・ OS の機能と役割 ・ OS / プログラム / 開発言語の関わり ・コンバイル型言語とインタブリタ型言語 ・ Web アプリケーションの特徴と仕組み ・サーバーサイドプログラムとクライアントサイドプログラム 物蘰を麟
・ 2 7 / 第 7 章関数 第 7 章 関数 て っ 何 と 五ロ 学習のポイント ・「言語構造」とは、 PHP にあらかじめ用意されている一連の機能を指す ・関数と似ているが、呼び出しに括弧を必要とせず、可変関数としては利用で きない echO と print の違い ・言語構造の print は値を戻し、 echo は値を戻さない ・ echo は再帰的に利用できない ・ⅱ st は配列の値を変数に一括して代入する際に利用される ・ⅱ st では一般の関数とは異なる引数の書式も許容される list() について KEYWORD ヒし 機 の る て れ さ 意 用 一 = ロ ム ラ グ ロ プ 構 五ロ 言語構造とは何か PHP には関数とよく似た動きをサポートする言語構造があります。関数と同 じように記述できるので勘違いされがちですが、厳密には関数ではありません。 言語構造と関数の違いには、「可変関数として利用できない」や「呼び出し時 に括弧 ( ) を必要としない」などがあります。 PHP の言語構造の一部を紹介しま KEYWORD す。 ・文字列を出力する print ・文字列を出力する echO ・プログラムの終了 exit / die 外部ファイルの呼び出し include / include once ・・ 外部ファイルの呼び出し require / require_ once ・
・ 32 第 2 章 PHP と Web アプリケーション ー衄と大きな違いはありません。 語です。 PHP の文法はほかのプログラミング新ⅱロ しかし、 PHP は℃言語」や「 Java 」のようなコンバイル型言語ではなくインタブ ーではなく「 Ruby 」や「 Python 」「 Perl 」といっ あ 0 、う点、静的 = 。。 ー吾のイ中間であるという特徴があります。また、次のような PHP な たような らではの特色を持っています。 ・ Web 用にデザインされた言語である ・ HTML に「組み込んで」プログラムを記述することができる 1 つめの「 Web 用にデザインされた言語」というのは、 PHP が標準で用意して いる機能を使うと、 Web でよく使われるクッキー ( Cookie ) やセッションなどの 仕組み ( 注② -1 ) を簡単に操作できるということです。また、 HTTP プロトコルで 送信されてくるリクエスト (GET や POST) の値も簡単に参照できるように作ら Cookie は、プログラムで利用す る情報を Web ブラウザ側で保存 れています。 する仕組み、セッションは複数の Web のページにわたってデータ 2 つめの「 HTML に組み込める」という特徴は、 Web ページの内容を記述する を共有できる仕組みのことです。 HTML の中に PHP のコードを埋め込んでプログラムを動かせるということで す。これは HTML を標準で扱う Web というシステムにとって、とても便利な機 能です ( 注② -2 ) 。 PHP では、 HTML の中に <?php ? > という記号で挟んでプロ グラムを書くことができます。インタブリタはこの記号に挟まれた部分だけをプ もちろん HTML だけに埋め込め るのではなく、 XML (eXtensible ログラムとして認識し、実行するのです。 Markup Language) などに PHP のコードを埋め込んで実行するこ 図② -1 PHP のプログラムは HTML に埋め込まれる ともできます。 HTML KEYWORD ・コンバイル型言語 ・インタブリタ型言語 ・静的言語 ・動的言語 的 型 タ 注②ー 1 注② -2 く html> く head> くセ土 tle > 日 e110 wo て ld く / t 土 tle > く /head> <b0dY> くれ 1 > He110 wo て ld ! く / hl > く > Cu てて e し time 土 8 く ? p れ ech0 date('Y-m-d : 土 : リ ? > く /bodY> く / tml > この部分が PHP のプログラムとして実行される。 したがって、文字サイズや表組みなど、表現や体裁に関する部分は HTML を そのまま利用できるという利点があります。 ほかにも PHP は、言語習得が容易であるともいわれているため、「とつつきや
第 1 章プログラミングの基礎知識と Web アプリケーション -2 学習のポイント アプリケーションが動くには ・コンピュータのデータは大きく分けてテキストとバイナリがある ・アプリケーションプログラムが動くには、 OS が解釈できるバイナリが必要 ・異なる OS 用に作られたバイナリでは動作しない ・これらの OS の違いを吸収するために VM Ⅳ減 u Machine) という技術 がある ・テキストデータで書かれたプログラムは「ソース」といわれプログラム言語 を使って記述する ・ソースはコンバイラを使ってバイナリに変換される ・コンバイラを使ってバイナリを作成する言語を「コンバイラ型言語」という ・バイナリを作成せず、ソースを逐次実行していくタイプの言語を「インタブ リタ」型言語という プログラムが動くには プログラムの種類 KEYWORD バイナリ・・・コンピュータ用の命令の集まり。通常は人間が記述や解釈を行わない ソース・・・人間が解釈しやすいプログラミング言語で書かれた命令の集まり コンバイラ・・・テキストデータで作られたソースからバイナリを作成するプログ ラム インタブリタ・・・ソースを逐次解釈しながらバイナリをコンピュータに送るプロ グラム 前節で、「 OS の種類が 100 あれば 1 開種類のアプリケーションが必要」と書い たのですが、そもそもなぜ OS が違うとプログラムは動かないのでしようか ? Mac OSX で動くアプリケーションがそのまま Windows でも動くとすごく便利 なのに、なぜ Mac 版、 Windows 版があるのか。これには OS とプログラムの深い 関わりがあります。
P H P から始まるプログラミングの世界 PHP. は広く普吸しているインタープリタ型のプログラミング言語です PHP は web ページを記述する HTML 中にプログラムを「混ぜて」書 くことができ、 Web アプリケーション ( ネットワークを利用し、ブラウザで操 作できるアプリケーション ) をとても簡単に作ることができます。また、古 くからある C 言語などと似た仕組みを多く持っており、「プログラミングは 初めて」とし、う入門者にも向いている言語です。 本書は、「 PHP で初めてのプログラミング」をキーワードに、プログラミン グの基礎と PHP の基礎に重点を置いて解説をします。まず、プログラ ムが動く仕組みとプログラミングのための基礎知識を解説してから、 コーディングの基本である変数や制御構文といった文法に入っていけ るように配慮しました。また、 PHP とほかの言語との違いにも言及して 解説を加えてし、ます。本書を読むのに多くの前提知識は必要ありませ ん。「知識はないけど、プログラミングに挑戦してみたい」という方にお 勧めできる 1 冊です。 プロクラマからエンシニアまて ー T 技術者のための オンラインセレクトショップ sho .com スキルアップから実際の開発現場までをトータルサポート BOOK SOFTWARE MAGAZINE PHP(j) はじめての PHP プログラミング 旧 BN : 978-4 ・ 7981-1802-4
はじめに はじめに 2 開 8 年 12 月著者記す てば幸いです。 本書が初めてのプログラミングの足がかりとして、読者の皆さんのお役に立 くように執筆しました。 て、 Web アプリケーションの仕組みとプログラミングの基本が無理なく身に付 やプログラムの書き方を順々に解説していきます。本書を一通り読むことによっ という基本から始め、インターネットの通信とプログラムとの関係、 PHP の文法 が伺われるでしよう。本書では、 PC ・ OS ・プログラムがどうして動いているのか 多くの企業や Web サービスが PHP を採用していることからもその魅力の一端 ります。特に Web アプリケーションを作る場面で役立つ機能を多数有しており、 には簡単にプログラムを書き・動かすことができるというとても大きな魅力があ ときどきセキュリティ上の問題なども取り沙汰される PHP ですが、この言語 る舞い ) などについても配慮して執筆しました。 めてという方のために、ほかの言語と比べたときの PHP のクセ ( PHP 特有の振 ならばすぐに作れるようになると思います。また、プログラミング言語自体が初 験の方でもプログラミングの基礎知識を理解・習得しやすく、簡単なプログラム PHP というとても学びやすいプログラミング言語を題材としているため、未経 「 PHP 」を使って、はじめてのプログラム作りを体験していただく入門書です。 本書は、 Web アプリケーション作りに特化したプログラミング言語である 境が整ってきました。 度なプログラムの知識がなくとも簡単に Web アプリケーションを作成できる環 め、ひろく普及してきています。さらに近年は、複雑なハードウェアの知識や高 ザがあれば簡単に利用でき、 HTML や画像などを組み合わせることも容易なた ン作りも進化してきました。このような「 Web アプリケーション」は web プラウ インターネット利用者の増加に伴って、 Web 技術を応用したアプリケーショ