概要

環境

PHP 5.6のインストール

$ sudo yum -y install epel-release
$ cd /etc/yum.repos.d
$ sudo wget http://rpms.famillecollet.com/enterprise/remi.repo
$ yum list --enablerepo=remi --enablerepo=remi-php56 | grep php
$ sudo yum -y install --enablerepo=remi --enablerepo=remi-php56 php php-opcache php-devel php-pear php-mbstring php-mcrypt php-mysqlnd
php-devel ... PHP開発用モジュール
php-pear ... ライブラリのリポジトリ
php-opcache ... PHPスクリプトをコンパイルしキャッシュ
php-mbstring ... マルチバイト文字モジュール
php-mcypt ... 暗号化モジュール
php-mysqlnd ... MySQLモジュール
$ 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

<?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サーバーを起動

$ 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.

変数とデータ型

<?php

$msg = "hello from the TOP!";
echo $msg;
var_dump($msg);

定数

<?php

define("MY_EMAIL", "yuji@dot.com");
echo MY_EMAIL;
// MY_EMAIL = "hogehoge";  //  エラー発生

var_dump(__LINE__);  //  現在の行(何行目か)を表示
var_dump(__FILE__);  //  ファイル名を表示
var_dump(__DIR__);  //  ディレクトリ名を表示

数値の計算

$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);

文字列

$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文による条件分岐

$score = 85;
if ($score > 80) {
	echo "great!";
} elseif ($score > 60) {
	echo "good";
} else {
	echo "so so ...";
}

真偽値

$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文による条件分岐

$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文によるループ処理

// 0&#12316;9を表示
$i = 0;
while ($i < 10) {
	echo $i;
	$i++;
}
// 0&#12316;9を表示
do {
	echo $i;
	$i++;
} while ($i < 10);

for文によるループ処理

// 0&#12316;9を表示
for ($i = 0; $i < 10; $i++) {
	echo $i;
}
for ($i = 0; $i < 10; $i++) {
	if ($i === 5) {
		// break;  //  $iが5の時にループを抜けるため0&#12316;4を表示
		// continue;  //  $が5の時のみ以降の処理をスキップするので5を除いた0&#12316;9を表示
	}
	echo $i;
}

配列

$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

$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 ";
}
$colors = ["red", "blue", "pink"];
foreach ($colors as $value) :
	echo "$value ";
endforeach;
<?php
	$colors = ["red", "blue", "pink"];
?>
<ul>
	<?php foreach ($colors as $value) : ?>
	<li><?php echo "$value "; ?></li>
	<?php endforeach; ?>
</ul>

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS