こんにちは! 株式会社アルシエで教育に関するサポートをしている岸本です。
今回はPHPの基礎についてお伝えしていきます。
PHPはHTMLの中に埋め込んで記載することも可能です。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPの基本</title>
</head>
<body>
<?php
echo "Hello World"
?>
</body>
</html>
PHPの書き方
echoの後に記述した内容がブラウザに表示されます。
<?php
echo "この文字列を表示"
?>
変数
変数とはデータを一時的に保存する箱です。
// $fooという変数に文字列のBobを代入
<?php
$foo = 'Bob'; // 値'Bob'を$fooに代入する。
?>
変数を文字列と一緒に表示させる方法です。
// .を使うことで文字列と結合しています
// "<br>"は改行しています
echo $name . "さんは" . $age . "歳です。";
echo "<br>";
// {}の中に変数を記入することができます
// この書き方だと、文字列ごとに""を記入しなくていいです
echo "{$name}さんは{$age}歳です。";
echo "<br>";
// シングルクォートだと展開されない
echo '{$name}さんは{$age}歳です。';
定数
定数は変数と違い、一度宣言すると上書きできません。
「define」関数か「const」を使って定義します。
define(定数名, 定数の値)
define("TEST", "あいうえお");
const 定数名 = 定数の値
const TEST = "あいうえお";
算術演算子
+ 加算 - 減算 * 乗算 / 除算 % 剰余 ** べき乗
使用例
<?php
$b = 5;
$c = 3;
// 足し算
$a = $b + $c;
echo $a; // 8
// 引き算
$a = $b - $c;
echo $a; // 2
// 掛け算
$a = $b * $c;
echo $a; // 15
// 割り算
$a = $b / $c;
echo $a; // 1.6666666666667
// 余り
$a = $b % $c;
echo $a; // 2
// べき乗
$a = $b ** $c;
echo $a; // 125
?>
制御構造
if文は、条件分岐のための構文です。
// 以下の例は、$a が $b より大きい場合、aはbより大きい を表示します
<?php
if ($a > $b)
echo "aはbより大きい";
?>
条件分岐に使用されるif文があり、その中で条件が満たされていない場合に実行せさるための「else」文があります。
<?php
if ($a > $b) {
echo "aはbよりも大きい";
} else {
echo "aはbよりも大きくない";
}
?>
foreach
は、配列を反復処理するための便利なメソッドです。
以下のコードでは、配列$arrの各要素の値が変数$valueに代入され、ループの中で$valueの値が2倍に変更されます。
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr は array(2, 4, 6, 8) となります
unset($value); // 最後の要素への参照を解除します
?>
関数
関数とは、処理のかたまり、ひとまとまりのプログラムのことです。
function functionName(){
// 何らかの処理を書く
}
functionName(); // この1行だけで↑の関数(処理のまとまり)を実行できる
引数
外部から渡される値を受け取るためのパラメータを仮引数といいます。
<?php
function functionName($num){ // ←この丸カッコの中の部分がパラメータ、仮引数
// 何らかの処理
$val = $num + 1; // ←ここで使用している$numが、丸カッコで受けたパラメータ
echo $val;
}
functionName(3)// 仮引数に3を渡している
?>
戻り値
return 文により値を返すことができます。
<?php
function square($num)
{
return $num * $num;
}
echo square(4); // '16'を出力
?>
クラスとオブジェクト
クラスとはプログラムの処理をまとめたオブジェクトのことです。
PHPにはアクセス修飾子というものがあります。
アクセス修飾子には、public(パブリック)、protected(プロテクテッド)、private(プライベート)があります。
publicは、どこからでもアクセス可能です。
※アクセス修飾子を指定しない場合は自動的にpublicとして扱う。
<?php
class TestClass {
// プロパティの定義 (どこからでもアクセス可能)
public $name;
// コンストラクタの定義
public function __construct($name) {
$this->name = $name; // アクセス可能
}
}
$test = new TestClass('テスト');
echo $test->name; // アクセス可能
// 実行結果: テスト
?>
privateは、同じクラスの中でのみアクセス可能です。
<?php
class TestClass {
// プロパティの定義 (クラス内のみアクセス可能)
private $name;
// コンストラクタの定義
public function __construct($name) {
$this->name = $name; // アクセス可能
}
}
$test = new TestClass('テスト');
echo $test->name; // アクセス不可
// 実行結果:
// Fatal error: Uncaught Error: Cannot access private property TestClass::$name
?>
protectedは、クラス自身、継承したクラス、親クラスからのみアクセスできます。
<?php
class TestClass {
// プロパティの定義 (クラス内と、継承したクラス内のみアクセス可能)
protected $name;
protected $number;
// コンストラクタの定義
public function __construct($name) {
$this->name = $name; //アクセス可能
}
}
// 継承クラス
class SubTestClass extends TestClass {
// コンストラクタの定義
public function __construct($number) {
$this->number = $number; // アクセス可能
}
}
$subTtes = new SubTestClass(1);
echo $subTtes->number; // アクセス不可
// 実行結果:
// Fatal error: Uncaught Error: Cannot access protected property SubTestClass::$number
?>
static
staticとは、スコープに基づき、クラスを指定すれば インスタンスを生成せず、アクセス可能です。
※「static」を用いることでクラスプロパティまたは、クラスメソッドとして定義されます。
ゲッターとは、privateまたはprotectedで宣言されている値を外部から読み取るために使用いたします。
self
は現在のクラスを参照するために使用します。
parent
は子要素
から親要素を参照するために使用します。
class TestClass {
// クラスプロパティの定義
public static $name = 'テスト'; //どこからでもアクセス可能
private static $number = 1; // クラス内のみアクセス可能
// クラスメソッドの定義 (ゲッター)
public static function getNumber() { // アクセス可能
return self::$number;
}
}
echo TestClass::$name.PHP_EOL; // アクセス可能
echo TestClass::getNumber(); // アクセス可能 (ゲッターを使用しているので「1」、が表示できる)
echo TestClass::$number;// アクセス不可
// 実行結果:
// テスト
// 1
// Fatal error: Uncaught Error: Cannot access private property TestClass::$number
以上がPHPの基礎となります!