====================
PHP入門
====================
PHPとは
===========
| PHPはサーバーサイドで動作するプログラミング言語です。
| 文法はわかりやすさ、習得のしやすさを重視して作られており、初心者でも習得しやすいと言われています。
| 一方で、PHP5以降では本格的なオブジェクト指向プログラミングが可能になり、大規模開発でも多く使われています。
| また多くのライブラリやフレームワークが存在するため開発の手助けになります。
| 2012年の2月6日にIDC Japanが発表した「国内ソフトウェア開発者の実態調査」によれば、国内で最も使われているスクリプト言語だそうです。
| PHPを設置する方法はPHPが動作するサーバーに、HTMLと同様にアップロードするだけです。拡張子はphpとなります。
ローカルサーバー
================
| 先述した通り、javascriptがクライアントサイドである事に対して、PHPはサーバーサイドのプログラミング言語です。
| PHPが動作するサーバーにファイルをアップロードするだけでいいのですが、サーバーの環境を簡単に用意できない人もいると思います。
| そんな時に使用するのがローカル開発サーバーです。ざっくり言ってしまえば、自分のPCをサーバーに見立てるということです。
| 以下にローカル開発環境を構築する方法を示します。
XAMPPのインストール【Windowsをお使いの方】
------------------------------------------------------
| Windowsでローカル開発環境を構築するにはXAMPP(ザンプと読む)というアプリケーションがオススメです。
| `XAMPPのダウンロードページ `_ へ行き、インストールしてください。
| インストール場所はデフォルトのままにしておくことがオススメです。
| インストールが完了したら、Xampp Control Panelを起動し、ApacheとMySQLの横の「Start」をそれぞれ押してください。
| 正常に起動することができたら、ブラウザを開いて「localhost」にアクセスしてみてください
| 「c:/xampp/htdocs」に置かれたファイルを実行する事ができるはずです。
|
| もし正常にStart出来ない場合はポート番号を変える必要があります。
* 「C:\xampp\apache\conf」の「httpd.conf」を開きます。
* 「httpd.conf」内の「Listen」を変更したいポート番号に変更する。
* 「httpd.conf」内の「ServerName」の番号も変更したいポート番号と同じにする。
| この手順を終えた上でもう一度Startしてみてください
| 正常に起動することができたら、ブラウザを開いて「localhost:変更後のポート番号」にアクセスしてみてください。
| 表示されれば成功です。
MAMPのインストール【Macをお使いの方】
------------------------------------------------------
| Macでローカル開発環境を構築するにはMAMP(マンプと読む)というアプリケーションがオススメです。
| `MAMPのダウンロードページ `_ へ行き、画面中央付近にあるオレンジ色のDownloadボタンを押してダウンロードして下さい。
| ダウンロードが完了したらファイルを解凍し、拡張子.pkgのインストーラファイルをダブルクリックしてインストールを進めてください。
| インストールが完了したら、アプリケーションフォルダ内にあるMAMPフォルダからMAMP.appを起動し、「サーバーを起動する」ボタンを押してブラウザが自動的に開けば準備は完了です。
| デフォルトの設定ではおそらく、MAMPを起動した状態でブラウザにlocalhost:8888と入力すれば、/Applications/MAMP/htdocsに置かれたファイルを実行する事ができるはずです。
| 分からない事があったら、`MAMPのインストールを解説しているページ `_ などを参考にしてみましょう。
PHPの文とコメント
=================================
PHPブロック
-------------
| PHPは全て「」で終了するPHPブロックの内側で実行されます。
| 終了タグは必要ある場合のみ書いてください。
.. code-block:: php
PHPブロックの外側はそのまま出力されます。
終了タグは省略可能であれば省略します。
PHPの設定情報を出力する
-------------------------
.. code-block:: php
PHPブロックの外側にはコメントは適応されません。ここはそのまま出力されます。
| PHPでは1行コメントと、複数行に渡るブロックコメントを使用することができます。
出力
---------
.. code-block:: php
| PHPでCLIやブラウザで出力するときは、基本的にechoを使います。
エラー設定
=================================
.. code-block:: php
| PHPの変数は先頭に$をつきます。大文字と小文字が区別されます。
スコープ
---------
| PHPでは関数やメソッド内ではその外側で定義された変数を使用することはできません。
| また、関数やメソッド内で定義された変数をその外側で使うことができません。これをローカルスコープと言います。
| 関数やメソッドの外側で定義された変数はグローバル変数となり、全ての場所で利用、書き換えることができます。
スーパーグローバル変数 $_POST $_GET
============================================
| PHPには予め自動的に定義される変数があります。PHPでは定義済みの変数を書き換えることもできますので注意してください。
| 定義済みの変数にはスーパーグローバル変数という、全てのスコープから参照可能な変数も存在します。
| スーパーグローバル変数には例えば、HTTP POSTで渡された内容を含む$_POSTなどが存在します。
型
=================================
| PHPでは型を宣言する必要はありませんが、全ての変数が型を持っています。型は代入された内容に応じて自動的に割り当てられます。
| また、PHPでは型が自動的に変換されることがあります。
整数型(int)
------------------------------
| 整数型は10進法の他に8進法、16進法に対応しています。
.. code-block:: php
値, キー => 値, キー => 値, );の形式で可能です。
.. code-block:: php
'バナナ', 'orange' => 'オレンジ', 'apple' => $a, 'peach' => '桃');
| 一つの配列に複数の型が混在しても構いません。
| PHPは全て連想配列ですが、キーを指定する必要はありません。
.. code-block:: php
'バナナ', 1 => 'オレンジ', 2 => 'りんご', 3 => '桃');
| と同じ意味になります。
| 配列の中の値を利用するには、「配列変数名[キー]」のようにして取り出します。
.. code-block:: php
'バナナ', 1 => 'オレンジ', 2 => 'りんご', 3 => '桃');
$apple = $fruits[2]; // 変数appleには'りんご'が代入される。
| 配列の中に配列を入れることも可能です。それを多次元配列といいます。
.. code-block:: php
右辺が左辺以上の場合true <=
左辺が右辺以上の場合true >=
===================================================== ============
論理演算子
---------------------------
======================================================== ============
論理積 (両辺ともにtrueならtrue) &&、and
論理和 (どちらかがtrueならtrue) or 、||
排他的論理和 (片方がtrueで、もう片方がfalseの場合true) xor
否定 (falseならtrue) !
======================================================== ============
.. code-block:: php
この部分はif文がtrueのとき以外は出力されません。
この部分はif文がfalseのとき以外は出力されません。
値){
処理;
}
| となります。
| 例えば
.. code-block:: php
'バナナ', 'orange' => 'オレンジ', 'apple' => 'りんご', 'peach' => '桃');
| という配列があって、この配列の中身を全て出力したい場合、下記のようにします。
.. code-block:: php
'バナナ', 'orange' => 'オレンジ', 'apple' => 'りんご', 'peach' => '桃');
foreach ($fruits as $fruit) { //配列の値の数だけ繰り返します。
echo $fruit . PHP_EOL; //$fruitには現在いる場所の値が入っています。この場合、最初ならバナナ、次はオレンジになります。
}
| 出力結果
| バナナ
| オレンジ
| りんご
| 桃
関数
=================================
PHPの関数
-----------------
| PHPでは、関数もjavascriptと同じように使うことができます。
.. code-block:: php
function 関数名(引数)
{
処理;
return 戻り値;
}
.. code-block:: php