PHPスタディ
遅ればせながらPHPの勉強を開始しました。これまで永年に亘り、MS-Accessのアプリケーション開発において、VBAと関わって参りました。
今や、IT技術はすさまじい勢いで進化しています。ネット社会ではスマホがPCを追い越し通信手段としてWebアプリケーションがますます重要視されるものと思われます。
MS-AccessとWebアプリケーションが連携できたらと思います。このPHPスタディは私のためにあります。それは私が勉強する上で実践演習することと備忘録の役目です。皆さん方にもお役に立ててもらえれば幸いです。
YouTubeに簡素で分かりやすそうな無料の教材が見つかりました。PHPの実行環境を構築をご覧ください。
PHPスタディでは実際にPHPファイルをPHPが稼働する環境にあるサーバーにアップロードしました。実行ボタンを押下するとその結果出力を確認することができます。
コードは私が勝手に変えた部分もあります。何よりも公式サイトの「PHP マニュアル」をご覧ください。
文字列
数値
変数
<?php
$i = 1;
$x = "PHP";
echo "第{$i}回{$x}入門講座";//第1回PHP入門講座
echo "<br>";
echo '第{$i}回{$x}入門講座';//第{$i}回{$x}入門講座
?>
条件分岐a == b # 等しいか? a < b # aよりbが大きいか? a <= b # a以上か? a < b # aよりbが小さいか? a >= b # a以下か? a != b # aとbは異なるか?
配列とループ//空の配列 []; array(); //文字列の配列 ["PHP","Ruby","Python"]; //数値の配列 [1,10,100];
<?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
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);
?>
クラス
<?php
class Cat{ # 変数やメソッドのまとまり
private $name; //属性(メンバ変数)
private $weight; //属性(メンバ変数)
public function __construct($name,$weight)
{
$this->name = $name;
$this->weight = $weight;
}
public function eat($food){
$this->weight += 1;
echo "体重:{$this->weight}kg"."<br><br>";
}
public function cry()
{
echo "私は{$this->name}だニャン!"."<br>";
}
}
// インスタンスの作成
$cat1 = new Cat("一郎",5);
$cat2 = new Cat("二郎",3);
$cat1->cry(); //一郎
$cat1->eat("魚"); //体重:6kg
$cat2->cry(); //二郎
$cat2->eat("魚"); //体重:4kg
$cat1->cry(); //一郎
$cat1->eat("魚"); //体重:7kg
?>
<?php
class Dog{
public $varPublic; //クラスの外から読み書きできる
private $varPrivate; //クラスの外から読み書きできない
//クラスの外から呼び出せる
public function functionPublic(){
}
//クラスの外から呼び出せない
private function functionPrivate(){
}
}
// インスタンスの作成
$dog = new Dog();
//メンバ変数
$dog->varPublic = 1; //OK
$dog->varPrivate = 1; //エラー
//メソッド
$dog->functionPublic(); //OK
$dog->functionPrivate(); //エラー
?>
<?php
// 親クラス
class Animal{
public $name;
public $weight;
public function __construct($name,$weight)
{
$this->name = $name;
$this->weight = $weight;
}
public function eat($food){
$this->weight += 1;
echo "体重:{$this->weight}kg"."<br><br>";
}
}
// 子クラス
class Dog extends Animal{
public function cry()
{
echo "僕は{$this->name}だワン!"."<br>";
}
}
// インスタンスの作成
$dog1 = new Dog("ポチ",7);
$dog2 = new Dog("ハチ",5);
$dog1->cry(); //僕はポチだワン!
$dog1->eat("魚"); //体重:8kg
$dog2->cry(); //僕はハチだワン!
$dog2->eat("魚"); //体重:6kg
$dog1->cry(); //僕はポチだワン!
$dog1->eat("魚"); //体重:9kg
// 子クラス
class Cat extends Animal{
public function cry()
{
echo "私は{$this->name}だニャン!"."<br>";
}
}
// インスタンスの作成
$cat1 = new Cat("タマ",5);
$cat2 = new Cat("チコ",3);
$cat1->cry(); //私はタマだニャン!
$cat1->eat("魚"); //体重:6kg
$cat2->cry(); //私はチコだニャン!
$cat2->eat("魚"); //体重:4kg
$cat1->cry(); //cat1タマだニャン!
$cat1->eat("魚"); //体重:7kg
?>
<?php
// 親クラス
class Animal{
public $name;
public $weight;
public function __construct($name,$weight)
{
$this->name = $name;
$this->weight = $weight;
}
public function eat($food){
$this->weight += 1;
echo "体重:{$this->weight}kg"."<br><br>";
}
}
// 子クラス
class Dog extends Animal{
public function eat($food){
$this->weight += 2;
echo "体重:{$this->weight}kg"."<br><br>";
}
public function cry()
{
echo "僕は{$this->name}だワン!"."<br>";
}
}
// インスタンスの作成
$dog1 = new Dog("ポチ",7);
$dog2 = new Dog("ハチ",5);
$dog1->cry(); //僕はポチだワン!
$dog1->eat("魚"); //体重:9kg
$dog2->cry(); //僕はハチだワン!
$dog2->eat("魚"); //体重:7kg
$dog1->cry(); //僕はポチだワン!
$dog1->eat("魚"); //体重:11kg
// 子クラス
class Cat extends Animal{
public function cry()
{
echo "私は{$this->name}だニャン!"."<br>";
}
}
// インスタンスの作成
$cat1 = new Cog("タマ",5);
$cat2 = new Cog("チコ",3);
$cat1->cry(); //私はタマだニャン!
$cat1->eat("魚"); //体重:6kg
$cat2->cry(); //私はチコだニャン!
$cat2->eat("魚"); //体重:4kg
$cat1->cry(); //cat1タマだニャン!
$cat1->eat("魚"); //体重:7kg
?>