遅ればせながら…
PHPスタディ

画像; PHPスタディ

 遅ればせながらPHPの勉強を開始しました。これまで永年に亘り、MS-Accessのアプリケーション開発において、VBAと関わって参りました。
 今や、IT技術はすさまじい勢いで進化しています。ネット社会ではスマホがPCを追い越し通信手段としてWebアプリケーションがますます重要視されるものと思われます。
 MS-AccessとWebアプリケーションが連携できたらと思います。このPHPスタディは私のためにあります。それは私が勉強する上で実践演習することと備忘録の役目です。皆さん方にもお役に立ててもらえれば幸いです。

無料教材の利用

 YouTubeに簡素で分かりやすそうな無料の教材が見つかりました。PHPの実行環境を構築をご覧ください。
 PHPスタディでは実際にPHPファイルをPHPが稼働する環境にあるサーバーにアップロードしました。実行ボタンを押下するとその結果出力を確認することができます。

画像 文字列
HTMLにPHPを埋め込む

<p>
<?php echo "PHP"; ?>入門
</p>
PHPの開始・終了タグ

<?php 
echo "こんにちは";
?>
PHPの開始タグ(省略形)

<?
echo "こんにちは";
コメント

<?
//コメント1
echo "こんにちは";//コメント2
コメント(複数行)

<?
/**
*複数行の
*コメントです
*/
echo "こんにちは";
文字列の連結

<?php 
echo "PHP"."入門";//PHP入門
?>
画像 数値
数値

<?php
echo "1";//文字列
?>
<br><!-- 改行 -->
<?php
echo 1;//数字
?>
数値を使った計算

<?php
echo 4 + 2;//6(たし算)
echo "<br>";
echo 4 - 2;//2(ひき算)
echo "<br>";
echo 4 * 2;//8(かけ算)
echo "<br>";
echo 4 / 2;//2(わり算)
echo "<br>";
echo 4 + 2 * 10;//組合せもOK
?>
画像 変数
変数

<?php
&tmp = 1 ;//変数tmpに1を代入
echo $tmp;//1
?>
数値の計算

<?php
//数値の計算
$a = 1;
$b = 2;
echo $a + $b;//3
?>
文字の連結

<?php
//文字の連結
$a = "PHP";
$b = "入門";
echo $a.$b;//PHP入門
?>
上書き

<?php
$foo = "PHP";
$foo = "PHP入門";
echo $foo;//PHP入門
?>
上書き(2)

<?php
$i = 1;
$i = $i + 1;
echo $i;//2
?>
上書き(3_基本形)

<?php
//基本形
$i = 1;
$i = $i + 1;
echo $i;//2
echo "<br>";
$i = $i - 1;
echo $i;//1
?>
上書き(3_省略形)

<?php
//基本形
$i = 1;
$i += 1;
echo $i;//2
echo "<br>";
$i -= 1;
echo $i;//1
?>
変数は繰り返し使える

<?php
$program = "PHP";
echo $program."入門";//PHP入門
echo "<br>";
echo $program."講座";//PHP講座
?>
変数展開

<?php
$i = 1;
$x = "PHP";
echo "第{$i}回{$x}入門講座";//第1回PHP入門講座
echo "<br>";
echo '第{$i}回{$x}入門講座';//第{$i}回{$x}入門講座
?>
画像 条件分岐
var_dump

<?php
var_dump(6);//int(6)
?>
<br>
<?php
var_dump("6");//string(1)"6"
?>

<?php
1;//数値(int型)
?>
<br>
<?php
"1";//文字列(string型)
?>
比較

<?php
var_dump(1 == 1);//bool(true)
?>
<br>
<?php
var_dump(1 == 2);//bool(folse)
?>
比較演算子

a == b # 等しいか?
a < b # aよりbが大きいか?
a <= b # a以上か?
a < b # aよりbが小さいか?
a >= b # a以下か?
a != b # aとbは異なるか?
比較演算子_

<?php
var_dump(1 == 2);
?>
<br>
<?php
var_dump(1 < 2);
?>
<?php
var_dump(1 <= 1);
?>
<br>
<?php
var_dump(1 > 2);
?>
厳密な比較

<?php
var_dump(1 == "1");//bool(true)
?>
<br>
<?php
var_dump(1 === "1");//bool(false)
?>
if文(条件分岐)

if(条件式){
  trueの場合の処理;
}

<?php
$score = 90;
if($score >= 80){
  echo "合格点です";
}
?>
if-else文

<?php
$score = 70;
if($score >= 80){
  // trueの場合の処理
  echo "合格点です";
} else {
  // falsの場合の処理
  echo "頑張りましょう";
}
?>
if-elseif-else文

<?php
$score = 70;
if($score >= 80){
  // 80点以上の場合の処理
  echo "合格点です";
}elseif($score >= 70){
  // 70~79点の場合
  echo "惜しい";
} else {
  // それ以外(69点以下)の場合の処理
  echo "頑張りましょう";
}
?>
条件式の組合せ(AND条件)

//どちらもtrueならtrue
//それ以外はfalse
1 < = $i && $i < 10
条件式の組合せ(OR条件)

//どれか1つでもtrueならtrue
//すべてfalseならfalse
$i < 10 || $x < 10
演習
<?php
$sex = "男";
$age = 45;

if($sex == "男"){
  if (35 <= $age && $age < 50){
  echo "中年オジサンです";
  }
} else {
  echo "女性です";
}
?>
画像 配列とループ
配列

//空の配列
[];
array();
//文字列の配列
["PHP","Ruby","Python"];
//数値の配列
[1,10,100];
インデックス

<?php
//インデックス
//        0      1      2
$arr = ["PHP","Ruby","Python"];
//配列の要素(値)の取出し
echo $arr[0];//PHP
echo "<br>";
echo $arr[1];//Ruby
echo "<br>";
echo $arr[2];//Python
?>
連想配列

<?php
//配列
$arr = ["PHP","Ruby"];
echo $arr[0];//PHP
echo "<br>";
//連想配列
$arr = ["key1" => "PHP","key2" => "Ruby"];
echo $arr["key1"];//PHP
?>
こんな事もできる

//配列の中に配列(多次元配列)
[[1],[2]];

//配列の中に連想配列
[["key1"=> 1]];

//連想配列の中に配列
["key1"=> [1]];
配列のループ処理

foreach ($配列 as $変数名){
//ループ処理
}
配列のループ処理

<?php
//配列
$arr = ["PHP","Ruby"];
foreach($arr as $lang){
echo $lang;
echo "<br>";
}
//PHP
//Ruby
?>
連想配列のループ処理

<?php
$arr = ["key1" => "PHP","key2" => "Ruby"];
foreach($arr as $key => $val){
  echo "{$key}は{$val}です";
  echo "<br>";
}
//key1はPHPです
//key2はRubyです
?>
continue(ループ処理のスキップ)

<?php
$arr = ["PHP","Ruby","Python"];
foreach($arr as $lang){
	if($lang == "Ruby"){
	continue;
	}
echo $lang;
echo "<br>";
}
//PHP
//Python
?>
画像 メソッド(関数)
メソッド(関数)

<?php
//メソッドとは処理のまとまりのこと
//呼び出されるまで実行されない
function study($lang){
  echo "{$lang}入門";
  echo "<br>";
  echo "{$lang}講座";
  echo "<br>";
}
//メソッド呼び出し
study("PHP");//引数=PHP
study("Ruby");
?>
メソッドの引数

<?php
function ask(){
  echo "質問はYoutubeコメント欄へ";
}

function sayAge($me, $age){
  echo "{$me}は{$age}才です";
}
//メソッド呼び出し
ask();
  echo "<br>";
sayAge("私",40);
?>
メソッド引数(デフォルト)

<?php
function sayAge($me="私", $age=30){
  echo "{$me}は{$age}才です";
}
sayAge();//私は30才です
echo "<br>";
sayAge(null,20);//は20才です ※訂正: nullを渡すとnullが返ります
echo "<br>";
sayAge("君",20);//君は20才です
?>
returnと戻り値

<?php
function price($age){
  if ($age >= 20){
      return "大人料金";
  }
  else {
  return;
  }
}

$res = price(20);
echo $res;//大人料金
?>
画像 例外処理
例外(Exception)の発生

<?php
function calcTax($i){
  if(is_int($i) === false){
    throw new Exception("数値を指定してください");
    }
    return $i * 1.1;
}

echo calcTax("あ");
echo calcTax(1);
?>
例外をキャッチする

<?php
function calcTax($i){
  if(is_int($i) === false){
    throw new Exception("数値を指定してください");
  }
    return $i * 1.1;
}

try{ //tryの中で発生した例外はキャッチされる(捕まる)
  echo calcTax("あ");//例外発生!catchへ飛ばされる
  echo calcTax(1);//この行は実行されない!
}
catch (Exception $e){ //例外は$eとしてここにくる
  echo $e->getMessage();//エラーメッセージ表示
  echo "<br>";
  echo $e->getTraceAsString();//どこでエラーが発生したか表示
  echo "<br>";
}
echo calcTax(2);
?>
画像 クラス