PHPとは―ホームページ向きの言語。
技術情報
PHPは、ホームページのサーバーサイドで動的なウェブページ作成するための機能を多く備えているが特徴の言語です。ロリポップなどのレンタルサーバーのPHP設定、エラー表示、.htaccessによるサーバー設定などを中心にまとめています。
目次
この記事の目次です。
1. PHPとは
2. PHP設定
3. PHPのプログラミング
1. PHPとは
PHPは、オープンソースのプログラミング言語です。 特にホームページのサーバーサイドで動的なウェブページ作成するための機能を多く備えているが特徴の言語です。 一般的にどこのレンタルサーバでも使える言語です。
PHPでできること
PHPで以下ができます。
- サーバーサイドでのスクリプティング
- コマンドラインでのスクリプティング
- クライアントサイドでのGUIアプリケーション
2. PHP設定
PHPというとプログラミングのコードをイメージする場合とPHP実行環境のソフトウェアをイメージする場合があります。 PHPの設定というとPHP実行環境の設定になります。
.htaccessでPHPの設定も行えます。 この記事では、ロリポップなどのレンタルサーバーのPHP設定をテーマに、PHPのエラー表示などの.htaccessによるサーバー設定中心にまとめています。
PHPの設定ファイル(php.ini)
php.iniはPHPの設定ファイルです。
ロリポップのphp.iniの設定方法
ロリポップのphp.iniの設定方法です。
PHP設定画面の表示
ユーザー専用ページにログインし、「PHP設定」を開きます。
php.iniの設定画面の表示
設定するドメインの「設定」をクリックします。すべてのドメインに対し設定することもできます。
php.iniの設定
必要な項目を設定し、「php.iniを設定する」をクリックします。
PHPのエラー表示の設定(.htaccessでのdisplay_errorsの設定例)
制作時にブラウザにエラー情報が表示すると便利です。display_errorsで制御が可能です。 ただし、公開時はブラウザにPHPのエラー情報が表示されるとエラーに含まれるパス情報からサーバのアカウント名の露呈など重要な情報が取得されてしまう場合があります。
.htaccessでの設定例は以下です。
php_flag display_errors Off
PHPのバージョン設定
PHPのバージョン設定は、基本的にレンタルサーバーの管理画面で行えます。
ロリポップのPHPバージョンの変更方法
ユーザー専用ページの[サーバーの管理・設定]にある[PHP設定]にて、各ドメイン別にPHPバージョンの設定が行えます。 設定変更は、変更するドメインのPHPバージョンを選択し、「変更」をクリックします。
.htaccessでPHPのバージョン設定を行う場合も
ディレクトリ毎にPHPのバージョンを変更したいなど、PHPのバージョン設定の.htaccessで設定する場合があります。 たとえば、CPIサーバの共用プランでは、以下のように.htaccessに記述してPHPのバージョン設定が行えます。
AddHandler x-httpd-php71 .php
「.html」の拡張子のファイルでPHPを実行する方法
「.html」の拡張子のファイルでPHPを実行する場合は、以下の設定を「.htaccess」に記述します。
AddType application/x-httpd-php .php .html
PHPの実行タイムアウト(max_execution_time)
PHPの処理が長くなり、実行タイムアウトとなってしまうことがあります。 この場合、max_execution_timeを設定することでエラーを回避することができます。
php.iniで設定するのが一般的ですが、htaccessでも設定が行えます。
php_value ignore_user_abort On php_value max_execution_time 120
デフォルトは60秒です。上記は120秒に設定する例になります。
3. PHPプログラミング
PHPプログラミングについて解説していきます。
プログラミングの例
PHPでは<?php と ?>の間に記述されたコードがPHPコードとして解釈・実行されます。 <?php から ?>の間に実行するプログラムを記述します。
以下は「Hello World!!」と表示するプログラムの例です。
<?php echo 'Hello World!!'; ?>
「echo "Hello World!!";」の最後に行の終わりをしめす「;」を記述します。 このセミコロン「;」を記述したところまでが命令文となります。
命令文は、何らかの処理を行うPHPコードをまとめたものとなります。 サンプルのようなシンプルな命令文から複雑な命令文までいろいろなものがあります。
PHPのコメントアウト
PHPプログラム内にコードについて説明するなどの用途でコメントが記述できます。
コメントアウトとは
コメントは、基本的にはコードの読み手に対して情報を提供するものですが、一時的にコードをコメントにする用途でも使われます。 一時的にコメントにするような使い方のことをコメントアウトといいます。
コメントの書き方/コメントアウトの方法
PHP自体は実行時にコメントの内容を無視します。
PHPではプログラミング言語のC++の形式のコメント「//」とシェルスクリプト形式のコメント「#」、C言語形式のコメント「/* */」が使えます。
「//」もしくは「#」から行末まではコメントとして扱われます。 また、「/*」と「*/」で囲んだ範囲もコメントとして扱われます。
コメント行とは
「//」もしくは「#」から行末までをコメントアウトするコメントをコメント行といいます。
コメントアウトの例
<?php // print 'コメント'; print 'Hello World!!'; # print 'コメント'; /* print 'コメント'; */ ?>
上記コードを記述したファイルを拡張子が「.php」のファイルに保存して、レンタルサーバなどPHPが動作する公開用のサーバに配置します。 配置後ブラウザから配置URLにアクセスして表示を確認します。 ブラウザでアクセスするとコメント部分は読み飛ばされ、「Hello World!!」とだけ表示されます。
echo htmlの書き方
上記では、printで文字列を出力する例を見てきましたが、printの代わりにechoも使用できます。
echo htmlの例1
echoの例です。
<?php echo 'Hello World!!'; ?>
echo htmlの例2
以下は、html内でechoで文字列を出力する例です。
<!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title><?php echo "タイトル";?></title> </head> <body> <?php echo "本文";?> </body> </html>
ヒアドキュメントの書き方
PHPにはヒアドキュメントという書き方もあります。 EOMとEOM;の間に{<変数>}という形式で出力する方法をヒアドキュメントといいます。
以下は、ヒアドキュメントを使用してhtmlをechoで出力する例です。
<?php $title = "タイトル"; $body = "ヒアドキュメントの例"; $html = <<< EOM <!doctype html> <html lang="ja"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>{$title}</title> </head> <body> {$body} </body> </html> EOM; echo $html; ?>
PHPのデータ型と変数
データ型とリテラル、変数についてです。
リテラル
リテラルとは、プログラム内でデータを表現するための記述方法のことをいいます。
PHPのリテラルの例
PHPのリテラルには次のようなものがあります。
- 1000
- 0xAF
- 1.123
- "文字列"
- '文字列'
- true
- null
PHPの識別子
識別名とは、簡単にいうと「名前」です。 PHPでは、変数名や関数名などプログラムで使用するコードに識別子を使用します。
命名規則
識別子の最初の文字として使用できるのは、アルファベットの大文字と小文字、アンダースコア(_)、ASCIIコードで0x7Fから0xFFまでの文字のいずれかになります。 2番名以降は、これらに加えて0~9までの数字が使用できます。
PHPの変数
変数の定義と代入、初期化、型と型の種類、変数の参照など。PHPの変数について見ていきます。
PHPの変数の定義
PHPの変数の定義は、「$」+「変数名」の形式で記述します。 変数名として使える文字は他のプログラミング言語と同様に、半角英数字です。 なお、大文字と小文字は区別され、先頭に数字は使えません。
PHPの変数の代入
変数に値を設定することを代入といいます。 変数に値を設定するには以下のように「=」を使用します。
$変数名 = 値;
「=」のことを代入演算子といいます。
変数の定義と代入の例
以下はPHPの変数の定義の例です。 PHPの変数が大文字と小文字が区別される例です。
<?php $str = 'aaa'; $Str = 'Aaa'; $STR = 'AAA'; print "$str\n"; print "$Str\n"; print "$STR\n"; ?>
PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでは、sample.phpというファイル名で保存したソースファイルを実行しています。
$ php sample.php aaa Aaa AAA
PHPの変数の初期化
変数に初めて値を設定することを変数の初期化といいます。 初期化されていない変数を参照した場合は実行時にエラーになります。 変数が初期化されているかはisset関数を使用すると分かります。
変数が初期化されていない場合の挙動はどうなるのでしょうか?何も値を設定ない変数をprintしてみます。
<?php $hensuu; print "$hensuu\n"; ?>
実行するとエラーになります。
$ php sample.php PHP Notice: Undefined variable: hensuu in /tmp/sample.php on line 3
今度は変数が初期化されているか確認する例です。
<?php $hensuu; print isset($hensuu) . "\n"; $hensuu = 'aaa'; print isset($hensuu) . "\n"; ?>
初期化されている場合は、issetの値が1、初期化されていない場合は何も表示されないです。
$ php sample.php 1
PHPの変数の型
JavaやC言語などのプログラミング言語では、どのようなデータの種類を扱うか明示的に指定する必要があります。 このデータの種類のことを型といいます。PHPでは変数の型を明示的に宣言しません。宣言することは出来ません。 PHPでは、変数の型はその変数の使われ方によって変わってきます。
PHPの変数の型は、var_dump()という機能を使用すると変数の方が確認できます。 たとえば、$hensuuという変数に文字列を代入した場合は$hensuuの型はスカラー型の文字列に整数を代入した場合はスカラー方の整数になります。
<?php $hensuu = 'Hello World!!'; var_dump($hensuu); $hensuu = 10; var_dump($hensuu); ?>
PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでも、sample.phpというファイル名で保存したソースファイルを実行しています。
$ php sample.php string(13) "Hello World!!" int(10)
はじめは文字列なのでstring型、次は整数なのでint型になりました。
PHPの変数の型の種類
PHPの変数の型の種類には大きくスカラー型、複合型、特殊な型の3つあります。 それぞれ以下のような型があります。
スカラー型には以下のようなものがあります。
-
boolean
論理値を扱うデータ型です。
-
boolean
論理値を扱うデータ型です。
-
integer
整数値を扱うデータ型です。
-
float、double
浮動小数点の値を扱うデータ型です。
-
string
文字列の値を扱うデータ型です。
複合型には以下のようなものがあります。
-
配列
配列は複数のキーと値を保持する型です。
-
オブジェクト
PHPは、オブジェクト指向プログラミングもサポートしています。 classキーワードで定義されたクラスをnew演算子で作成したオブジェクトを保持する型です。
特殊な型には以下のようなものがあります。
-
リソース
リソース型はファイルを開いたときやデータベースに接続したときなどの外部リソースへの参照を保持する特別な型です。
-
NULL
NULLは変数が値を持たないことを表す型です。
参照による代入が可能
PHP4以降では変数への値の代入時に参照による代入を行うことが出来ます。 「参照による代入」を行うには代入する変数の先頭に「&」を付けます。
たとえば、$hensuuという変数の参照を$hensuu2という変数に代入して、後で$hensuuの値を変更して $hensuu2を表示すると後で変更した$hensuuの値が表示されます。
<?php $hensuu = 'Hello World!!'; $hensuu2 = &$hensuu; $hensuu = 'Hello PHP!!'; print "$hensuu2\n"; ?>
PHPがインストールされている環境でphpコマンドを使用して実行します。 ここでも、sample.phpというファイル名で保存したソースファイルを実行しています。
$ php sample.php Hello PHP!!
PHPの文字列
PHPには標準で文字列を作成したり操作する機能が組み込まれています。 文字列は、任意の長さの文字を連結したものです。
PHPの文字列の(シングル/ダブル)コーテーションとエスケープシーケンス
PHPで文字列を扱う場合は文字列をシングルクォーテーション(')とダブルクォーテーション(")で囲みます。 また、ダブルクォーテーションで文字列を囲んだ場合はその中で変数やエスケープシーケンスが利用でき、 シングルクォーテーションで囲んだ場合は変数やエスケープシーケンスはそのままの文字として扱われます。
PHPの配列
PHPの配列はarray関数で取得できます。 またcount関数で配列の要素数が調べられます。
<?php $a = array('a','b','c'); echo "$a[0]\n"; echo "$a[1]\n"; echo "$a[2]\n"; echo count($a) . "\n"; ?>
このコードを実行すると以下のように表示されます。
php sample.php a b c 3
PHPの演算子
演算子は、「a+1」の「+」の部分のことで、変数と値の演算に使われます。
PHPの演算子の種類
PHPの演算子は以下のグループに分類することができます。
- 算術演算子
- 代入演算子
- 比較演算子
- インクリメント/デクリメント演算子
- 論理演算子
- 文字列演算子
- 配列演算子
- 条件代入演算子
PHPの演算子の例(算術演算子)
PHPの演算子の例として算術演算子を解説します。 PHPの算術演算子は、数値に対して、足し算や引き算、掛け算、割り算などを行う演算子です。
演算子 | 名前 | 例 | 結果 |
---|---|---|---|
+ | 加算(足し算) | $x + $y | $xと$yの合計 |
- | 減算(引き算) | $x - $y | $xと$yの差 |
* | 乗算(掛け算) | $x * $y | $xと$yを掛け合わせた値 |
/ | 除算(割り算) | $x / $y | $xを$yで割った値 |
% | 余り | $x % $y | $xを$yで割った際の余り |
** | べき乗 | $x ** $y | $xを$y乗した値 |
PHPのif/else/elseif文
条件文は、条件に応じて異なる処理を行う文です。条件分の1つにPHPではif/else/elseif文があります。
if文
if文は、1つの条件がtrueの場合コードを実行するという文です。
if文の文法
if文の文法は以下です。
if (条件) { 条件がtrueの場合の処理 }
if else文
if else文は、1つの条件がtrueの場合とfalseの場合に実行するコードを分けることができます。
if else文の文法
if else文の文法は以下です。
if (条件) { 条件がtrueの場合の処理 } else { 条件がfalseの場合の処理 }
if elseif else文
if elseif else文は、複数の条件でtrueの場合にそれぞれで実行するコードと全てfalseの場合に実行するコードを分けることができます。
if elseif else文の文法
if elseif else文の文法は以下です。
if (条件1) { 条件1がtrueの場合の処理 } elseif (条件2) { 条件2がtrueの場合の処理 } else { 全ての条件がfalseの場合の処理 }
PHPのfor/foreach文
PHPで繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。
PHPのfor文
PHPで繰り返し処理を行う方法の1つにfor文があります。 for文は繰り返し回数指定&条件に一致する場合に同じ処理を行いたいときにfor文を使います。
for文の構文
for文の構文です。
for (①カウンタの初期設定;②繰り返し条件;③繰り返し毎のカウンタの設定) { 繰り返し処理 }
①カウンタの初期設定 …繰り返し条件で使用するカウンタ用の変数の初期値を設定します。
②繰り返し条件 …繰り返しの終了条件を条件式で記述します。
③繰り返し毎のカウンタの設定 …繰り返し毎にカウンタに値を設定する式
for文の例
<?php for ($i = 0; $i <= 10; $i++) { echo $i . "回"; } ?>
foreach文
foreach文は、配列を反復処理出来る構文です。
PHPのforeach文でのindexの取り出し
PHPのforeach文では「配列名 as index名 => 要素」とすることでindexの要素を取り出すことができます。
foreach文の例
配列の要素を反復で取り出せます。 $valueのみと、$keyと$valueの指定があり、前者は値だけ、後者はキーと値が利用できます。
<?php $arr = array('a','b','c','d'); foreach($arr as $value) { echo "$value \n"; } foreach($arr as $key => $value) { echo "$key = $value \n"; } ?>
例の実行結果です。
php sample.php a b c d 0 = a 1 = b 2 = c 3 = d
PHPのtry/catch
PHPにもtry/catchの構文があります。 try/chatchは例外を捕捉してエラー処理が記述できる構文です。 例外処理を使うことで、エラーが発生して落ちてしまう場合や問題が発生した場合の処理を自分でコントロールできるようになります。
try { //通常処理 } catch ( Exception $ex ) { //エラー処理 }
PHPの関数
PHPではあらかじめ用意された標準関数と自分で定義したユーザー定義関数を使うことができます。
ユーザー定義関数
関数(ユーザー定義関数)の定義方法について解説しています。
関数の例
ユーザー定義関数の例です。
<?php function func($arg) { echo '引数:' + $arg; return "戻り値"; } ?>
関数の引数
関数には入力として引数を渡すことができます。
<?php function func($arg) { echo '引数:' + $arg; } ?>
関数の戻り値
またreturn文を使用して出力として戻り値を返すことができます。
<?php function func() { return "戻り値"; } ?>
関数の呼出し方法
関数の呼び出しは以下のよう行います。
引数のない関数を呼び出す
引数のない関数の呼び出しは次のようになります。
<?php function func() { echo "関数を呼び出しました。"; } func(); ?>
引数のある関数を呼び出す
引数のある関数の呼び出しは次のようになります。
<?php function func($arg) { echo '引数:' + $arg; } func('引数のある関数を呼び出します。'); ?>
戻り値のある関数を呼び出す
戻り値のある関数の呼び出しは次のようになります。
<?php function func() { return "戻り値のある関数を呼び出しました。"; } $var = func(); echo $var; ?>
関数の戻り値の利用方法
PHPを勉強中の方にとって、この方法は感覚的にわかりにくい部分と思われますので、関数の戻り値の利用方法について補足します。
関数の戻り値を変数に代入して利用する
関数の戻り値を変数に代入して利用できます。
<?php function func() { return "戻り値のある関数を呼び出しました。"; } $var = func(); echo $var; ?>
関数呼び出しを変数のように利用する
関数の戻り値の値は、関数呼び出しを変数のように利用することもできます。
<?php function func() { return "戻り値のある関数を呼び出しました。"; } echo func(); ?>
関連記事
関連記事です。
lolipop!(ロリポップ)
lolipop!(ロリポップ)は、利用者が多い共用レンタルサーバーの一つです。 管理画面がやさしく初めての方におすすめです。 lolipop!(ロリポップ)の利用方法をテーマに、htaccessの利用方法、無料独自SSL、アクセス制限、SSHの設定などの情報をまとめています。
更新履歴
更新履歴になります。
- 2022/9/25 PHPプログラミングについて追記しました。
- 2022/5/15 PHPの設定ファイル(php.ini)について追記しました。
- 2022/1/10 PHPでできることについて追記しました。
- 2020/6/24 記事をアップしました。