1
/
5

PHP基礎

こんにちは! 株式会社アルシエで教育に関するサポートをしている岸本です。

今回は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の基礎となります!

株式会社アルシエ's job postings
3 Likes
3 Likes

Weekly ranking

Show other rankings
Invitation from 株式会社アルシエ
If this story triggered your interest, have a chat with the team?