PHP言語を基礎から学ぶサイト

PHPについて初心者のWEBサイト管理人が情報をまとめていきます。HTMLとCSSをマスターしたらいよいよプログラム言語を一つ挑戦したいですよね。

http://blaineblogger.com/wp-content/uploads/2017/03/php.jpg
PHP言語
http://blaineblogger.com/wp-content/uploads/2017/03/2.jpg
PHP言語
http://blaineblogger.com/wp-content/uploads/2017/03/program.jpg
PHP言語

作者別: admin


型キャスト構文について考える


PHPはデータ型に比較的寛容な言語だと言えます。データの中身からPHP自身が自動的に分析、判断し、その時点で適切な入れ物(型)をきちんと割り当ててくれるのが、 PHPという言語の持つ大変優れたところだと言えます。

 しかし、 だからといってすべての場面においてPHPの寛容さに頼っているわけにもいけません。

 具体例をあげると、カウンタ変数$iが数値、連想配列 $defs[‘age’]は文字列、といった状況の時にはPHPの持つその寛容さに頼ることはできません。「===」演算子は値そのも のだけでなく、データ型がきちんと一致しているのかも判定しますので、例えば、数字の10と文字列の’10’は違うものと認識されてしまうのです。このような場合では、型キャストという仕組みを使って、デー タ型を明示的に変換する必要があります。

どういうことかというと、「変数 $defs[‘age’]は整数 (int)として扱う」と PHP側に伝達しているのです。このため、変数 $iと$defs[‘age’] は数値同士の比較となります。 数値型キャストで指定できる主なデータ型には、 (int)以外にも、(double)、(string)、(bool)といったものがあります。

変数の寿命


「こんにちは、世界リやi100Jのようなデータの寿命は、その文の中だけであると言いました。もしもあとから同じデータにアクセスしたいという場合には、データを変数という入れ物に保存しておく必要があったわけです。

もっとも、変数の寿命も永遠というわけではありません。変数は、そのページを表示したところでなくなってしまうものです。

ページ1で準備された変数$xには、ページ2ではアクセスできません。ページ2それどころか、もう一度、ページ1を表示させようとしても、前にページ1を表示させたときの変数$xには、もうアクセスできないのです。いったんページを表示させたところで、変数$xは削除されているからです。2度目のアクセスで作成される変数$xは、名前は同じでも別の変数として扱われます。

セッションとは?

そこで登場するのが、セッションというしくみです。セッションとは、ざっくりと言ってしまうと、ページを跨って情報を保存するための入れ物です。ユーザーがアプリを利用している問、維持されます。

ページ1でセッ卜したセッション情報は、ページ1を表示したあとも維持され、ページ2でもアクセスできます。例えばi実習のサンプルのように、ウィザード形式の入力フォームではウィザードが完了するまでデータを保存しなければいけませんかう、ポストデータをいちいちセッションに詰め替えているのです。

PHPの歴史


PHP はWebプログラム言語の1つですが、まずはその全体的な概要をみてみましょう。
PHPの生い立ちですが、PHPの最初のバージョンは、 1994年の秋に開発され ました。 1995年に入って一般に公開され、 Personal Home Page Toolsと呼ばれるよ うになりました。この頃のPHPは、ごく簡単なマクロだけを実行できる解析エンジンと、ゲストブックやアクセスカウンタ等のユーティリティから構成されていて、mSQL というデータベースソフトと連携する機能も組み込まれました。その後HTMLのフォームからデータを取り込む Form Interpreterの機能が追加されました。この頃から、 PHPでプログラミ ングをする人が急激に増え、いろいろな人がPHPに機能を追加していくようになり ました。  PHP のプログラムの解析エンジンは、新しく作り直されてPHP3へと進化し、このバージョンから PHP : Hypertext Preprocessorと呼ばれるようになりました。 PHP3 では、有志によって国際化も進められ、日本語処理も行えるようになりました。 そして、 2000 年には、最新バージョンのPHP4 がリリースされました。 PHP4では、解析エンジンとしてZendというものが使われるようになり、 PHP3 に比べ て高速になりました。 日本では日本語対応のこなれ具合から、 PHP3 の最終バージョンを国際化した PHP3.0.18 も多用されています。

任意に繰り返しを止められる「while 文」


繰り返す回数が一定でないループ処理はどう作る?

今月の日付をすべて表示したいときは、どうすれば良いでしょうか。すでに紹介した「for文」を使って1日から月末日までを表示するループ処理を作成すれば良いので、はないかとイメージしているかもしれませんが、繰り返す回数が定ではないので注意が必要です。

好きなタイミングで終了できる構文があれば便利

月末日は一定ではなく、「1日から30日までの0回)」のように繰り返す回数が明確ではありません。そこで、( )の中に「(5回繰り返し)」とループカウンタで回数を指定するのではなく、次のように、「月末日まで続ける」と記述できる構文があれば便利ではないでしょうか。

このように記述できれば便利

処理を繰り返す (月末固まで続ける) {

日付の表示

}

この方法であれば、1日、2日、3日・・・と日付が表示されていき、月末日が30日の月も、31日の月も、月末日になったところで柔軟にループを終了できるというイメージです。

変数の使い方


変数という“箱”には$(ドル記号)で始まる名前を付けます。その意味は、文字列や数値を「どの箱に入れたかJを識別するためです。名前の付け方のルールは次頁で説明しますが、「$message」のように、用途がわかる名前を付けておくと便利です。また、日本語で「$aisatu」のような名前を付けても構いませんが、英単語で命名するのが一般的です。変数にあいさつを格納する例は、次のようになります。

 

あいさつを変数に格納する

<?php

$message = “こんにちは!” ;

?>

変数と「こんにちは!」をつなぐ「=」は算数で使う等号(イコール)ではありません。これは、右辺の「こんにちは!」を$message’こ格納(代入)することを示す「代入演算子」という記号です。また、変数iこ格納する文字列は「”」または「’」で囲みます。

変数に値が格納できたら、次は、変数の中身を表示してみましょう。前に紹介したfecho “こんにちは円」というコードを思い出してください。この中の「”こんにちは”」を変数名($message)に置き換えるだけです。具体的には、次のようになります。

変数に格納したあいさつを表示する

<?php

$message = “こんにちは! ”;

echo $message;

echo $message;

echo $message;

?>


こんにちは!  こんにちは!  こんにちは!


「 echo “こんにちは!”;」を3回記述する場合と比べてメリットが感じられないかもしれませんが、それは、この例が簡単すぎるからです。作業が複雑になる前に、「何度も使う言葉は変数に格納する」という習慣を身に付けておきましょう。

値に書式を付けて文字列に変換する


数値を Web ブラウザに表示する際にprintf 関数を使用すれば、桁数を指定した り、上位の桁に 0を埋めるなど、書式を付けられました。これと似たような働きをす る関数として、 sprintf があります。 print 関数は、書式付けした結果を Web ブラウザに表示するのではなく、文字列 として返します。書き方は次のようになります。書式指定文字列の書き方は、 print関数と同じです。 print章式指定文字列,値1,[値 2・・・] ) たとえば、変数$val の値が100 のときに次の文を実行すると、変数$str には 100 の文字列が代入されます。

長い行を分割する


スクリプトを書いていると、行が非常に長くなることがあります。たとえば、 if 文 で複雑な条件を指定する場合、条件式が多くなり、行が長くなります。 そのような場合は 1行で書き切る必要はなく、 2行以上に分けて書いてもかまいません。スペースを入れられる位置であれば、改行することができます。 たとえば、
if
($point >= 20 && $point <= 50) のような if 文を 2行に分ける場合、
if
($point >= 20 && $point <= 50) のように書きます。

 

便利なprintf


関数による書き出しの方法を覚えておきましょう。長いタグの記述を書き出すときどんどん繋げていくとプログラムがわかりにくくなってしまいます。これに対してprintf 関数では、書き出す文字列の形式を先に指定して、 後で入れ込む実際の値を指定します。 printf 関数を使うと、記述が非常にわかりやすくなります。

セッションの使用


PHPで情報を保存するには、Cookieとセッションという2つの方法を使うことができます。Cookieが期間を決めて保存しておくことができるのに対し、セッションはWebブラウザが閉じられるまで、という制限がありますが、ページを移動しても情報を保存しておくことができるため、使う機会は多いでしょう。また、Cookieよりも情報を安全に保存することができます。とはいえ、「セッションハイジャック」というセキュリティリスクも存在するため、安全面で過信しすぎることのないよう、きちんとセキュリティ対策は行いましょう。

PHPでセッションを使用するには、まず対象となるすべてのページの先頭で、session_start()関数による初期化をおこない、$_SESSIONという変数に値を代入します。session_start()関数による初期化は、PHPの設定ファイルであるphp.iniを書き換えることで省略することもできるので、ページ数が多い場合などは、こちらの方法を取ったほうが便利です。

スクリプト


クライアントサイドスクリプトは、JavaScriptのようにWebブラウザ側で実行されるスクリプトです。また、Webサーバー側で動作するものをサーバー再度スクリプトと言います。PHPやPerl、JSPなどがこれにあたるものとなります。クライアントにはその処理の結果のHTMLだけが送られます。Webブラウザを選ばないのが特徴です。

なお、PHPは動作が早い、HTMLの中に書き込める、ブラウザではなくサーバー側で動作する、無料で使用でき、一定の条件のもとでソースの編集ができるオープンソースである、開発が早いなどの特徴があります。なお、PHPは「Hypertext Preprocessor」の略称ですが、PHPはハイパーテキストを事前に処理するものというPHP自体を表す名前でもあります。

自身のパソコンでPHPを動かす場合には、必要なソフトウェアを用意する必要があります。必要なソフトウェアを用意し、実行環境を設定する事から始めましょう。