本日は、PHPの基本的な書き方を簡単にまとめてみました。
こんにちは、ヨロと申します。
今回は「PHP」の基礎文法、基本的な書き方について、簡単にまとめてみました。
【PHP7 基礎・文法】初心者向けの基本的な書き方
文字出力 echo, print
<?php
echo "Hello World!!"; // Hello World!!
print "こんにちは"; // こんにちは
?>
変数(箱) – Variables
<?php
$hello = "こんにちは!";
$text = "久しぶりですね!";
echo $hello; // こんにちは!
echo "$hello たけしさん!"; // こんにちは! たけしさん!
echo $hello . "エミリー " . $text; // こんにちは!エミリー 久しぶりですね!
?>
<?php
$a = 5;
$b = 10;
echo $a + $b; // 15
?>
<?php
$color = "青";
$fruit = "りんご";
echo $color . $fruit; // 青りんご
?>
スコープ外(グローバルスコープ)
<?php
$number = 100; // 変数をここで定義:スコープ外(グローバルスコープ)
function aaa() { // この中がスコープ内。
echo $number;
}
aaa(); // スコープ内に何も値がないためエラー。
echo $number; // 100
?>
スコープ内(ローカルスコープ)
<?php
function bbb() {
$number = 200; // 変数をここで定義:スコープ内(ローカルスコープ)
echo $number;
}
bbb(); // 200
echo $number; // 変数がスコープ内に書かれていて、この命令はスコープの外に書かれているため、エラーが表示される。
?>
配列
<?php
$sushi = array ('まぐろ', 'うに', 'えんがわ'); // 配列
echo $sushi[0]; // まぐろ
echo $sushi[1]; // うに
echo $sushi[2]; // えんがわ
echo "僕は、" . $sushi[0] . "と、". $sushi[1] . "と、" . $sushi[2] . "が好きです。";
// 僕は、まぐろと、うにと、えんがわが好きです。
?>
// 配列
<?php
$sushi = array("まぐろ"=>"150", "うに"=>"400", "えんがわ"=>"200");
echo "うに" . "は" . $sushi['うに'] . "円です。";
?>
// うには400円です。
関数
function 関数名(引数){
// ここに処理
}
// 関数
<?php
function abc() {
echo "Hello World!!";
}
abc(); // 関数を呼び出す。
?>
関数+引数
<?php
function abc($name) {
echo "$name<br>";
}
abc("太郎");
abc("みゆき");
abc("マイケル");
abc("アンジェラ");
abc("陳");
?>
/*
太郎
みゆき
マイケル
アンジェラ
陳
*/
// 関数
<?php
function abc($name, $nationality, $age) {
echo "名前:$name / 国籍:$nationality / 年齢:$age<br>";
}
abc("太郎", "日本", "46");
abc("みゆき", "日本", "33");
abc("マイケル", "アメリカ", "67");
abc("アンジェラ", "フランス", "21");
abc("陳", "中国", "87");
?>
/*
名前:太郎 / 国籍:日本 / 年齢:46
名前:みゆき / 国籍:日本 / 年齢:33
名前:マイケル / 国籍:アメリカ / 年齢:67
名前:アンジェラ / 国籍:フランス / 年齢:21
名前:陳 / 国籍:中国 / 年齢:87
*/
// 関数
<?php
function abc($price) {
$total_price = $price * 1.08;
echo $total_price;
}
abc(100);
?>
引数について
<?php
function abc() {
$total_price = 100 * 1.08;
echo $total_price;
}
abc();
// この場合だと、もし後から数字を変えたくなった場合に、もう1つ新しく別で同じ式を書かなくてはいけない。
↓
function abc($price) {
$total_price = $price * 1.08;
echo $total_price;
}
abc(100);
// この場合だと、もし後から数字を変えたくなった場合に、()内の数字を変えるだけでOK。
// 引数を使うメリットというのは、関数の使い回しが出来るようになるという点。
?>
オブジェクト指向
// オブジェクト指向:やきとん屋
<?php
Class Product { // 製品を管理するためのクラス
public $name; // 製品の名前
public $stock; // 在庫
}
// 設計図だけがあってもどうしようもないので、実体化させなくてはいけない。
$harami = new Product(); // これで新しいプロダクトの"ハラミ"が出来ました(ここで変数の名前を決める) newで実体化。
$harami->name = "ハラミ "; // $haramiの名前は "ハラミ"
$harami->stock = 30; // $haramiの在庫は30本。
echo $harami->name . $harami->stock; // ハラミ 20
$kashira = new Product(); // これで新しいプロダクトの"かしら"が出来ました(ここで変数の名前を決める) newで実体化。
$kashira->name = "かしら "; // $kashiraの名前は "かしら"
$kashira->stock = 15; // $kashiraの在庫は15本。
echo $kashira->name . $kashira->stock; // かしら 15
// オブジェクト指向:やきとん屋さん
<?php
Class Product { // 製品を管理するためのクラス:public, private(継承出来ない), protectedがある(継承したクラスの中でのみ有効)
public $name;
public $stock;
public $price;
public function getStock() { // getStock関数
$message = $this->name . "の在庫は" . $this->stock . "本です。";
return $message;
}
}
$harami = new Product();
$harami->name = "ハラミ";
$harami->stock = 30;
$kashira = new Product();
$kashira->name = "かしら";
$kashira->stock = 15;
echo $harami->getStock(); // ハラミの在庫は30本です。
Class DrinkProduct extends Product{ // 製品を管理するためのクラス / extendsをしてるので、こっちが子で、Productが親になる。
public function getStock() { // オーバーライド(override):これを使えば、他のクラスの中身には影響がなく、DrinkProductのここだけに適用される。
$message = $this->name . "の在庫は" . $this->stock . "リットルです。"; // Class DrinkProductに関してのみ、"リットル"単位に変更出来る。
return $message;
}
}
$beer = new DrinkProduct();
$beer->name = "ビール";
$beer->stock = 10;
$shochu = new DrinkProduct();
$shochu->name = "焼酎";
$shochu->stock = 10;
echo $beer->getStock(); // ビールの在庫は10リットルです。
?>
// オブジェクト指向
<?php
class User { // Userクラス:クラスを作る時は、classという命令を使い、クラス名の最初の文字は大文字。
// プロパティ(property)
public $name; // プロパティを定義するにはアクセス権の明示が必要、publicはどこからでもアクセス可能。ここがprivateでカプセル化。
// コンストラクタ(constructor)
public function __construct($name) {
$this->name = $name;
}
// メソッド(method)などを書いていく。
public function hello() {
echo "Hello! I am $this->name";
}
}
class AdminUser extends User { // extendsを使う事で、Userのデータをそのまま引き継げる(この場合、ここが子クラスで、上のUserクラスが親クラスになる。)
public function nihao() {
echo "你好! 我是 $this->name!!";
}
public function hello() { // 子クラスの中で、上のメソッドの上書きも可能(オーバーライド(override))
echo "Hey!! I'm $this->name";
}
}
// インスタンスを作る時は、newという命令を使う。
$taro = new User("たろう");
$jessica = new User("Jessica");
$lee = new AdminUser("李");
echo $taro->name; // たろう
$jessica->hello(); // Hello! I am Jessica
$lee->hello(); // Hey!! I'm 李
$lee->nihao(); // 你好! 我是 李!!
$jessica->hello(); // Hello! I am Jessica
?>
メソッドチェーン
<?php
function aaa() {
echo "あいうえお ";
}
function bbb() {
echo "かきくけこ ";
}
function ccc() {
echo "さしすせそ ";
}
aaa().bbb().ccc(); // あいうえお かきくけこ さしすせそ
?>
if, else, elseif文
<?php
// if文
if () {
}
// else文
if () {
} else {
}
//elseif文
if () {
} elseif {
} else {
}
?>
// if文, else文, elseif文
<?php
$score = 60;
if ($score >= 80) {
echo "素晴らしい!"; // $scoreが、80以上の場合は、素晴らしいと表示される
}
if ($score >= 80) {
echo "素晴らしい!"; // $scoreが、80以上の場合
} else {
echo "次は頑張りましょう"; // $scoreが、80以下の場合
}
if ($score >= 80) {
echo "素晴らしい!"; // $scoreが、80以上の場合
} elseif ($score >= 50) {
echo "よく出来ました。"; // $scoreが、50以上、80以下の場合
} else {
echo "次は頑張りましょう。"; // それ以外(どこにも当てはまらない場合)
}
?>
switch文
<?php
switch () {
case 〇〇:
// ここに書く。
break;
case 〇〇:
// ここに書く。
break;
case 〇〇:
// ここに書く。
break;
default:
}
?>
// switch文
<?php
$color = "green";
switch ($color) {
case "red":
echo "赤";
break;
case "blue":
case "green";
echo "青";
break;
case "yellow":
echo "黄色";
break;
default:
echo "どの色にも当てはまりません。";
}
?>
for文
<?php
for ($number = 0; $number < 10; $number++) {
echo($number);
}
// 0123456789
?>
foreach文
foreach ($array as $value) {
// ここに命令を書く;
}
foreach ($array as $key => $value) {
// ここに命令を書く;
}
// foreach文
<?php
$sushi = array('まぐろ', 'いくら', 'うに', 'えんがわ', 'さば');
foreach ($sushi as $neta) {
echo "$neta <br>";
}
/*
まぐろ
いくら
うに
えんがわ
さば
*/
echo $sushi[1]; // いくら
?>
// foreach文:$〇〇 as $key => $value
<?php
$sushi = array(
'まぐろ' => 150, // $key(今回は、$neta) => $value(今回は、$price)
'いくら' => 200,
'うに' => 400,
'えんがわ' => 200,
'さば' => 300
);
foreach ($sushi as $neta => $price) {
echo $neta . 'は' . $price . "円<br>";
}
?>
/*
まぐろは150円
いくらは200円
うには400円
えんがわは200円
さばは300円
*/
while, do while文
// while文
<?php
while () {
//
}
?>
// while文
<?php
$number = 0;
while ($number < 10) {
echo "$number";
$number++;
}
// 0123456789
?>
// do while文
<?php
$number = 0;
do {
echo "$number";
$number++;
} while ($number < 10);
// 0123456789
?>
XAMPPを使って、PHPの結果をブラウザで確認する方法
XAMPPを起動し、特定の場所にPHPファイルを置く、
C:\xampp\htdocs\フォルダ\index.php
そして「index.php」の中に、
<?php
echo 'Hello World!!';
でOK。
そして「index.php」をブラウザで開いて結果を見てみる。