3-3 データ型 型とは 8 7 ・ 型は値 ( データ ) がどのような意味を持っ値であるのかを表している表現のこ とで。同じデータでもその型が持つ意味によってプログラムの処理が変わって きます。以下の例を見てみましよう。 / / 文字列として 123 を表現 / / 数値として 123 を表現 これら、変数 a も変数 b も「 123 」という値を持っていますが、コンピュータに とって、「 123 」が文字列として表現される場合と、数値として表現される場合と では、処理方法そのものが違ってきます。 以下は、メモリ上での「 123 」が文字列として扱われる例と、数値で扱われる ー 123 $b = 123 ー 図・ -6 データ型による扱いの違い 例をごく単純に示したものです。 b 1 123 2 3 メモリ上では、文字列は別々の 箱に格納される 数値の場合、その値 1 つで 1 つ の箱に格納される 文字列として格納されている変数 a の「 123 」は数字そのものではなく「 1 」「 2 」 「 3 」という「文字を表したデータ」が格納されているだけです。 a の場合、コン ピュータ上ではたんなる文字でしかないので、そのままでは計算はできません。 一方、数字として格納されている変数 b の「 123 」なら計算に用いることが可能 です。このようにそのデータの型が何かによって、メモリ上での扱われ方はまる で異なります。例では「文字列」と「数値」の 2 種類ですが、プログラム上ではもっ と多くの「型」が扱われているため、プログラマはデータの型を気にしながらプ ログラミングをしなければなりません。 図 3-7 変数のデータ型の違い 123 文字列ー 123 b 数値
第 3 章 PHP の基本と変数 図 3-4 変数に値を代入する 「 a 」と名づけられた変 数の箱に、「 10 」という 値を代入 10 という値のデータ 変数「 a 」は「 10 」という 値を持つ変数になる 古くからある C 言語などの場合、変数を使う前に変数の宣言という操作をし ておく必要がありますが、 PHP の場合はその必要はありません。宣言とは「変数 を作成し、そのためのメモリを確保せよ」という命令です。 C 言語などでは、ま す変数を宣言してその後に値を代入するという操作が必要で、宣言が無いとコ ンパイル時にエラーになってしまいます。 PHP のインタブリタの場合は、宣言さ れていない変数に値が代入されても、変数の作成とメモリの確保を自動的に 行ってくれます。 PHP ではプログラムの記述の厳密さにはあまりこだわらず、イ ンタブリタがある程度柔軟に対応してくれます。 そのぶんプログラマーのほうで気をつけなければいけないこともあります。た とえば、変数を作る操作と、変数に値を入れる記述が同じなので、意図せずに同 じ名前の変数を作ってしまうと、先に用意された変数の値が上書きされてしま います。 一度変数を作ると、以降のプログラム中で変数を利用できるようになります。 では変数の使用例を見てみましよう。 KEYWORD の 数 変 <?php $a ー he110 ー echo ー wo て ld echo echo echo ー PHP ! ! 上記を実行すると、「 helloworIdheIIoPHP!! 」という文字列が表示されます。ま ず変数 a に he Ⅱ。という文字列を入れています。この後 echo 命令で $a の内容
本 4-2 型の自動変換とキャスト 2 型の自動変換とキャスト ・ PHP ではプログラムの内容によってインタブリタが自動判断し、必要に応じ てデータの型を変更してくれる機能 ( 型の自動変換 ) がある ・プログラミング中で値を任意の型に変換したい場合は「キャスト」を行うこ とができる ・キャストを行う場合は「 (string) 1.9 」のように値の前に型名を指定する 型の自動変換 学習のポイント キャスト KEYWORD キャスト・・・ある値を別のデータ型に変換すること 丸め処理・・・値を変換した際に、不要な桁を切り捨てたり、四捨五入したりする こと 型の自動変換 PHP では、変数で使われている型をプログラマが意識しなくとも、プログラ ムのコンテキスト ( 文脈 ) によって自動変換してくれるという機能があります。 ものか、以下の例を見てください。 ては型の自動変換について見てみましよう。まずは、型変換とはどのような KEYWORD ・型の自動変換 <?php $a = 10 $b = 0 い・ echo echo echo $a $b
57 ・ 2-3 実際に試してみよう Windows VISTA での telnet の利用 Windows Ⅵ STA の場合、標準では telnet コマンドを利用することができません。 そこで、 telnet コマンドを有効化する必要があります。「コントロールバネル」→「プロ グラム」を選択すると表示される画面から、「プログラムと機能」の項目の中にある 「 Windows の機能の有効化または無効化」を選択してください。 図② -14 コントロールバネル 第濵三・コントこ ールバネル , ・コントロをル八ネルホ - ーム , 第、を 0 ラステムとメ冫テナンス パソクアプ「第乍ま 新 : 第コグラムの物協 にキュソティ態の W 『 : 、おコアイ参背一よ 0 プグラの可 スットワークとインターネット インタ - ・ネジト′、′ ) み ・・ - ネソトつ一り 0 をとのスつの表デ ファイえの異物二竃 一ドつ工アとサウント ( 0 まにはのメディアの動再主 プリンタ ーザーアカウントと第第のための を以 : ーザーへのを物による をのットアップ 亠ーヴ - ・アカウントの第まには テ第ウトップのカスタマイズ テ : 4 クツブの働の第第 角のカスマイ の第の第 、まおよびを当 ー一トよにはス第方「彦第 コンピュータの第屋援作 設を 0 : 提室の当 視第ディスプレイの化 そののプンヨン ま蔭物コントこ一ルバネル第プログラムト 第 ンインスト・ プごグムらま第 プごグうムと宿能 プこグラムのアンインス ! ・一ル ~ 第 0 きを ! え第こ、え ! ニエ止 インストールきれてい第新プ : : クうムのま ハプロクラをこのバージョンの物いご 0 、で : プコグラムのインストール方三 W ををご当第を「 スパイつ : アま卍は望まし ( ない可すのあるその衂のソフトウェアとスキ V ン 境在当行二第コジラムの & 子 をのプログラム スタ・・トアップに翼行すさプごっラム発止 メアイアまたはアバイスの民の変第 あるファイルエを発のプログラムで物、 : らプコク 3 ムのを W 第新ー 5 上 0 W 5 縁を引ト ) 0 墸カンリデスプレイのセットアソプ W れザイもト - のプロバティ おジェットをサイト′←に義浦 : おジェットのアンインストー オンラインでプコグラムを取、 W 。れ第を訂。 ~ 新しいプロリラムを電宿 ンラインを純 ] 、するプコグうムを ( デジタルコッ一 ) 「 Windows の機能の有効化 または無効化」を選択 ここで表示される「 Windows の機能」のダイアログボックスの中から、「 Telnet ク ライアント」にチェックを付けましよう。 図② -15 「 Windows の機能の有効化または無効化」を選択 W ws の物能の育陸化または無効化 能を有効にするには、チェックポックスをオンにしてくたさい . 物礎を無効にするには、チェックホックスをオフにしてください・第りつぶされた チェックポックスはをの一部が物効になっていることを表します . : 画豊まに rOSOt にメッセージキュー (MSMQ) サーバー ・田し NFS 用サーヒス 第 R ロ : ( Ren 20 骭部に 81 笋引 ) ↓ RIP リスナ ・・ S 、材能 第上 Te ⅸ酸スプションコンポーネント 第第丁にクライアント こも 1 - プこトユレをってリモート二ンピ」 - ータへ接します . 幻 UNIX•N—スリケーション 第ま Wi 0 、 S しプリケ - ションサービス 第主 W 面 ws ドとスキャン W の緡歌の裕 ( e 叡 t 電、 ー Windcws プロセス動サーヒス 冫ステム これで Windwos VISTA で telnet が利用できます。
この章のテーマ 本章からは、 PHP のプログラムの仕組みと書き方について、具体的に説明してい きたいと思います。 PHP には一般的なプログラム言語と同じように、値を格納す るための「変数」や、それらを操作するための「演算子」、プログラムの流れをコン トロールする「制御構造」などがあります。本章では、まず PHP のプログラムの書 き方の基本やプログラムの実行 / 停止、そしてプログラミングの基礎である「変 数」と「型」について勉強していきましよう。 3-1 プログラミングの基礎知識 ロプログラムを書くためのツー丿レ PHP のプログラムの書き方 プログラムの実行方法 ■ステートメント ( 文 ) コメントの使い方 3-2 変数 変数の作り方 値の格納 変数の利用 3-3 データ型 型とは ! PHP が扱う型 ! スカラー型 この章を学習すると以下の知識をマスターできます。 ・プログラムコードの基本的な書き方 ・プログラミングのためのツール「エデイタ」 ・ PHP のプログラムの実行方法 ・プログラムで「値」を管理する「変数」について ・データの型について ・コンピュータ処理の基礎となる 2 進数、 8 進数、 10 進数
KEYWORD ・テキスト ・バイナリ ・コンバイル 注① -6 な手数がかかります。 雑で間違いが混入しやすく膨大 できないことはありませんが、複 1 -2 アプリケーションが動くには 実行されなくなります。 用の命令で機能を呼び出しても、 Wind 。 ws は解釈できずにプログラムが正しく れている機能は Wind 。 ws が正しく解釈できないと意味がありません。 Mac OS に動作するプログラムを用意しなければならない理由です。 Windows で提供さ イナリ」は Windows 上で動作するバイナリにはならないのです。これが OS ごと したがって、もとのプログラムは同じでも「 Mac OS 用にコンパイルされたバ できるバイナリに変換するということになります。 うことであり、「 MacOS 用にコンパイルする」ということは、 Mac OS 上で実行 イルする」ということは、 Windows OS 上で実行できるバイナリに変換するとい 能なバイナリデータに変換する」ということになります。「 Windows 用にコンパ つまり「コンパイル」とは、人間が書いたプログラムを「対象の OS で実行可 レという行為を通して、対象の OS 上で動くバイナリにするのです。 ので ( 注① -6 ) 、まず人間の分かる言葉でプログラムを書いてみて、それをコンバイ プログラムを作る場合は、人間がこのバイナリを直接記述することは難しい プログラム Windows で実行可能な形式にコンバイルされた Windows プログラム UN Ⅸで実行可能な形式にコンバイルされた 図・ -7 OS の種類ことにアプリケーションが必要 り、それらのデータはテキストに対比させてバイナリと呼ばれています。 す。コンピュータ用の命令の集まりは文字や文書とは異なる形式で書かれてお せん。テキストファイルでは Windows がプログラムとして認識できないからで タ「 xxxxxx. txt 」の拡張子を「 exe 」に変更しても、プログラムとしては動作しま いった「 exe 」の拡張子の付いたものがありますが、ある文章 ( テキスト ) のデー きています。たとえば、 Windows で実行可能なプログラムには「 xxxxxx. exe 」と 通常、アプリケーションはコンピュータや OS が理解できる命令の集まりでで OS が解釈できるプログラムが必要 アプリケーションが動くには、
3- 1 ! 学習のポイント 3 ー 1 プログラミングの基礎知識 第 3 章 PHP の基本と変数 プログラミングの基礎知識 ・プログラミングにはテキストファイルを使用 ・テキストデータを書くには一般にテキストエデイタを用いる ・自分に合ったテキストエデイタを見つけよう ・「く ?php 」と「 ? > 」で囲んだ部分がプログラムとして実行される ・ PHP の実行順序は上から下への順 プログラムを書くためのツール PHP のプログラムの書き方 プログラムの実行方法 コメント・・・プログラムに付けられた人間が解釈するための注釈 コロンの後は次のセミコロンまでがステートメントになる ステートメント・・・ PHP の命令の始まりから「 ; ( セミコロン ) 」までのこと、セミ ソースコードにはテキストファイルを用いる テキストファイル・・・文字のデータだけからなるファイル、一般にプログラムの KEYWORD コメントの使い方 ステートメント ( 文 ) ・コメントを活用して分かりやすいプログラムを書こう ・ PHP でのコメントは 3 種類の表記法がある ・プログラムには実行時には無視される「コメント文」が書ける ・ PHP は文単位に実行される ・命令文の先頭から「 ; ( セミコロン ) 」までをステートメント ( 文 ) という ・ Web ブラウザを使う場合は http サーバーが仲介を行う ・ PHP プログラムの実行は Web ブラウザとコマンドラインを使う方法がある
この章のテーマ 本書では 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 アプリケーションの特徴と仕組み ・サーバーサイドプログラムとクライアントサイドプログラム 物蘰を麟
アプリケーションが動くには 1 -2 COLUMN VM (Virtual Macine) ros の数だけプログラムが必要」と書きましたが、これでは複数の OS で動くプログ ラムを書くのが大変なので、最近のアプリケーションでは、 OS が提供する機能を VM Ⅳ減 u Machine) と呼ばれる仮想のコンピュータと見立てて共通化する仕組みを 持っています。 図① -9 VM (\/ittual Macine) の仕組み プログラム VM の機能 (API) を利用する Vi 代 u Mach i ne (VM) Windows ハードウェア この仕組みのおかげで、その〇 S で動く VM さえあれば、まったく同一のバイナリが 複数の OS でも動くようになりました。 OS に依存しないアプリケーションを簡単に作れ る仕組みが提供されるということは、アプリケーションの可能性を大きく広げるものと いえます。 また、プログラムは最終的にはハードウェア上で動作するため、 OS が固有に管理し ているリソースには違いがありますが、ここにも VM のメリットがあります。 VM を利用 すると、 OS 固有の機能をすべて仮想の OS ( もしくはコンピュータ ) である VM が肩代 わりしてくれるため、プログラムから〇 S に依存する部分が排除されます。プログラム を VM が認識できる形式にコンバイルしておけば、各 OS 間の動作の問題は VM のほ うで解決してくれるのです。 さらに、セキュリティ上のメリットもあります。 VM 上で動くことで、プログラムがもし 破壊的な処理を実行したとしても、本物の〇 S には影響せず、 VM だけが影響を受けます。 最悪 VM が停止しても、本物の OS には悪影響を与えないというメリットもあります。 図① -10 プログラムは OS 機能を利用する メモリ管理 CPU 管理 OS ファイル管理 。會 ' I/O 管理 アプリケーション 管理 / 実行 理 管 リ モ メ プログラム
第 1 章プログラミングの基礎知識と Web アプリケーション -2 学習のポイント アプリケーションが動くには ・コンピュータのデータは大きく分けてテキストとバイナリがある ・アプリケーションプログラムが動くには、 OS が解釈できるバイナリが必要 ・異なる OS 用に作られたバイナリでは動作しない ・これらの OS の違いを吸収するために VM Ⅳ減 u Machine) という技術 がある ・テキストデータで書かれたプログラムは「ソース」といわれプログラム言語 を使って記述する ・ソースはコンバイラを使ってバイナリに変換される ・コンバイラを使ってバイナリを作成する言語を「コンバイラ型言語」という ・バイナリを作成せず、ソースを逐次実行していくタイプの言語を「インタブ リタ」型言語という プログラムが動くには プログラムの種類 KEYWORD バイナリ・・・コンピュータ用の命令の集まり。通常は人間が記述や解釈を行わない ソース・・・人間が解釈しやすいプログラミング言語で書かれた命令の集まり コンバイラ・・・テキストデータで作られたソースからバイナリを作成するプログ ラム インタブリタ・・・ソースを逐次解釈しながらバイナリをコンピュータに送るプロ グラム 前節で、「 OS の種類が 100 あれば 1 開種類のアプリケーションが必要」と書い たのですが、そもそもなぜ OS が違うとプログラムは動かないのでしようか ? Mac OSX で動くアプリケーションがそのまま Windows でも動くとすごく便利 なのに、なぜ Mac 版、 Windows 版があるのか。これには OS とプログラムの深い 関わりがあります。