- 追加された行はこの色です。
- 削除された行はこの色です。
** 概要 [#c084a835]
- 公式サイト:http://php.net/
- 用途:Webアプリケーション
- 用途:Webアプリケーション開発
** 環境 [#e7873d4b]
- OS X 10.11 El Capitan
- Vagrant 1.8.1
- VirtualBox 5.0.20
- CentOS 7.2.1511
- PHP 5.6.21
** PHP 5.6のインストール [#o0df1904]
- Remiリポジトリの追加
$ sudo yum -y install epel-release
$ cd /etc/yum.repos.d
$ sudo wget http://rpms.famillecollet.com/enterprise/remi.repo
- yum listで提供されているパッケージを確認
$ yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
- RemiリポジトリからPHP 5.6をインストール
$ sudo yum -y install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-pear php-mbstring php-mcrypt php-mysqlnd
- PHPの標準的なライブラリ
php-devel ... PHP開発用モジュール
php-pear ... ライブラリのリポジトリ
php-opcache ... PHPスクリプトをコンパイルしキャッシュ
php-mbstring ... マルチバイト文字モジュール
php-mcypt ... 暗号化モジュール
php-mysqlnd ... MySQLモジュール
- PHPバージョン確認
$ php -v
PHP 5.6.21 (cli) (built: Apr 28 2016 07:39:37)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
** Hello World [#z0708051]
- index.php作成
<?php
// 1行コメント
# 1行コメント
/*
複数行コメント
複数行コメント
複数行コメント
*/
echo "hello from the TOP!"
?>
<!DOCTYPE html>
<html lang="ja">
<body>
<p>Hello World <?php echo "from PHP";?></p>
<body>
</html>
** ビルトインWebサーバーを利用 [#d4e62b41]
** ビルトインWebサーバーを起動 [#d4e62b41]
$ php -S 192.168.33.10:8000
PHP 5.6.21 Development Server started at Sat May 21 05:27:21 2016
Listening on http://192.168.33.10:8000
Document root is /home/vagrant/php_lessons
Press Ctrl-C to quit.
- ブラウザで"http://192.168.33.10:8000"にアクセスすると結果を表示
- エラー時はビルトインサーバーのログを確認
** 変数とデータ型 [#g24859d3]
<?php
$msg = "hello from the TOP!";
echo $msg;
- データ型
-- 文字列 string
-- 数値 integer, float
-- 論理値 boolean / true false
-- 配列
-- オブジェクト
-- null
- 変数のデータ型を確認する方法
var_dump($msg);
** 定数 [#c4c6605a]
<?php
define("MY_EMAIL", "yuji@dot.com");
echo MY_EMAIL;
// MY_EMAIL = "hogehoge"; // エラー発生
var_dump(__LINE__); // 現在の行(何行目か)を表示
var_dump(__FILE__); // ファイル名を表示
var_dump(__DIR__); // ディレクトリ名を表示
** 数値の計算 [#x226fabb]
- 演算子:+ - * / % **(PHP5.6-)
$x = 10 % 3; // 1
$y = 30.2 / 4; // 7.55
var_dump($x);
var_dump($y);
- 単項演算子:++ --
$z = 5;
$z++; // 6
var_dump($z);
$z--; // 5
var_dump($z);
- 代入を伴う演算子
$x = 5;
$x += 2; // $x = $x + 2;と同じ。その他の四則演算も利用可能
var_dump($x);
** 文字列 [#v108abc6]
- "":特殊文字(\n, \t) 変数
- '':
- "":特殊文字(\n, \t) 変数展開可
- '':通常の文字、変数展開は不可
$name = "yuji";
$s1 = "hello $name!\nhello again!"; // 特殊文字、変数の展開が有効
$s2 = 'hello $name!\nhello again!'; // 特殊文字、変数の展開が無効
var_dump($s1);
var_dump($s2);
- ブラウザコンソールより実行結果のソースコードを表示
string(24) "hello yuji!
hello again!"
string(26) "hello $name!\nhello again!"
- 文字列内の変数記述
// 以下の何れの記述でも可
$s1 = "hello $name!\nhello again!";
$s1 = "hello ${name}!\nhello again!";
$s1 = "hello {$name}!\nhello again!";
- 文字列の連結
$s = "hello" . "world"; // helloworld
var_dump($s);
** if文による条件分岐 [#vbd9b20b]
- 比較演算子:> < >= <= == === != !== &color(red){※}; === !==の場合はより厳密に値と型を含めて比較
- 論理演算子:and && , or || , !
$score = 85;
if ($score > 80) {
echo "great!";
} elseif ($score > 60) {
echo "good";
} else {
echo "so so ...";
}
** 真偽値 [#o7689904]
- falseになる場合
-- 文字列:空, "0"
-- 数値:0, 0.0
-- 論理値:false
-- 配列:要素の数が0
-- null
$x = 5;
if ($x) { // $xが0でない場合はtrue($x == true)
echo "great";
}
- 三項演算子
// 真であれば$aを$maxに代入、偽であれば$bを$maxに代入。
$max = ($a > $b) ? $a : $b;
// 下記のif文で置き換え可能
if ($a > $b) {
$max = $a;
} else {
$max = $b;
}
** switch文による条件分岐 [#aabfe42d]
$signal = "red";
switch ($signal) {
case "red":
echo "stop!";
break;
// $signalが"blue"または"green"の場合
case "blue":
case "green":
echo "go!";
break;
case "yellow":
echo "caution";
break;
default: // どの条件にも該当しない場合
echo "wrong signal";
break;
}
** while文によるループ処理 [#q5449f29]
- while文
// 0〜9を表示
$i = 0;
while ($i < 10) {
echo $i;
$i++;
}
- do..while文
// 0〜9を表示
do {
echo $i;
$i++;
} while ($i < 10);
- while文とdo..while文の違い:条件が偽の場合、while文は処理を行わないがdo..while文は1回は処理を行う
** for文によるループ処理 [#k78322ca]
// 0〜9を表示
for ($i = 0; $i < 10; $i++) {
echo $i;
}
- break:ループを抜ける
- continue:それ以降の処理を実行せずに次のループに移る
for ($i = 0; $i < 10; $i++) {
if ($i === 5) {
// break; // $iが5の時にループを抜けるため0〜4を表示
// continue; // $が5の時のみ以降の処理をスキップするので5を除いた0〜9を表示
}
echo $i;
}
** 配列 [#j0092afb]
- key / value
$sales = array(
"tanaka" => 200,
"suzuki" => 800,
"sato" => 600, // 最後の行のカンマは省略可
);
// PHP5.4 or later
$sales = [
"tanaka" => 200,
"suzuki" => 800,
"sato" => 600, // 最後の行のカンマは省略可
];
var_dump($sales["suzuki"]); // 800
$sales["suzuki"] = 900; // 900を代入
var_dump($sales["suzuki"]); // 900
// 配列のkeyを省略(0から連番でkeyが自動で付与される)
$colors = ["red", "blue", "pink"];
var_dump($colors[1]); // blue
** foreach [#n663269e]
- 配列の内容をループ処理で取り出すことができる命令
$sales = [
"tanaka" => 200,
"suzuki" => 800,
"sato" => 600,
];
foreach ($sales as $key => $value) {
echo "($key) $value ";
}
// 配列のkeyが省略されている場合
$colors = ["red", "blue", "pink"];
foreach ($sales as $value) {
echo "$value ";
}
- コロン構文(foreach if while for)
$colors = ["red", "blue", "pink"];
foreach ($colors as $value) :
echo "$value ";
endforeach;
- HTML内にコードを埋め込む際に可読性が向上する
<?php
$colors = ["red", "blue", "pink"];
?>
<ul>
<?php foreach ($colors as $value) : ?>
<li><?php echo "$value "; ?></li>
<?php endforeach; ?>
</ul>