##最初に
今までphpを触ったことがなかったので基礎部分を学習しました。
##基礎の基礎
phpはHTMLに埋め込んで使用可能。で囲まれた部分がHTMLに変換され表示される。
//文末に;(セミコロン必要)
<?php
echo 'a';
?>
//一行の時は;(セミコロン不要)
<?php echo 'a' ?>
//変数は最初に$をつける
$sample = 'hoge';
''(シングルクオート)は文字列をそのまま出力する。
""(ダブルクォート)は変数を展開する。
html表示の改行文字はbrタグ
ソース表示の改行文字は改行コード\n
####出力
<?php
/*
/''(シングルクオート)は文字列をそのまま出力する。
/""(ダブルクォート)は変数を展開する。
*/
echo 'a'; //結果 a
echo 'a', 'b', 'c'; //結果 abc
echo 'a'.'b'; //結果 ab
$test = 'c';
echo 'ab$test'; //結果 ab$test
echo "ab$test"; //結果 abc
echo 'ab{$test}'; //結果 ab{$test}
echo "ab{$test}"; //結果 abc
echo 'a'.'b'.$test; //結果 abc
?>
html表示の改行文字はbrタグ
ソース表示の改行文字は改行コード\n
printも文字列を出力できるが、echoとの違いは
・文字列が一つしか指定できない。
・戻り値に1を返す(echoは戻り値を持たない)
####計算
<?php
echo 7 + 3; //結果 10
echo 7 - 3; //結果 4
echo 7 * 3; //結果 21
echo 7 / 3; //結果 2.33333
echo 7 % 3; //結果 1
//省略
$num = 7;
$num += 3 // $num = $num + 3 と同じ
$num -= 3 // $num = $num - 3 と同じ
$num *= 3 // $num = $num * 3 と同じ
$num /= 3 // $num = $num / 3 と同じ
$num %= 3 // $num = $num % 3 と同じ
//インクリメント・ディクリメント
$num = 7;
echo $num++; // 結果 7 → 出力の後に+1される
$num = 7;
echo ++$num; // 結果 8 → 出力の前に+1される
$num = 7;
echo $num--; // 結果 7 → 出力の後に-1される
$num = 7;
echo --$num; // 結果 6 → 出力の前に-1される
?>
####条件分岐
<?php
$x = 5;
if ($x >= 10) {
echo '10以上';
} elseif ($x >= 5) {
echo '5以上';
} else {
echo '5より下';
}
// 結果 5以上
?>
他の言語だとelif(python),elsif(ruby),else if(java)など注意
条件式には、<,<=,>,>=,==,!=,===,!==などを使用
複数の条件式は&&(かつ)、||(または)を使用
===は値とデータ型まで含めて完全一致かどうかを判定する
####繰り返し処理(while~文)
<?php
for ($i = 0; $i < 10; $i++) {
if ($i == 5) {
//処理をスキップ
continue;
}
if ($i == 8) {
//処理を中断してループを抜ける
break;
}
echo $i."<br>";
}
/*
/結果
/0
/1
/2
/3
/4
/6
/7
/*
?>
配列にはforeach構文が使える
foreach ($nums as $num) {
処理
}
####配列
<?php
//インデックス配列
$index_array = array("a", "b", "c", "d"); // 配列 [0 => "a", 1 => "b", 2 => "c", 3 => "d"]
//出力
echo $index_array[0]; //結果 a
//連想配列
$associative_array = array(0 => "a", 1 => "b", 2 => "c", 3 => "d"); // 配列 [0 => "a", 1 => "b", 2 => "c", 3 => "d"]
//出力
echo $associative_array[0]; //結果 b
//追加
$index_array[] = "e"; //配列 [0 => "a", 1 => "b", 2 => "c", 3 => "d", 4 => "e"]
$index_array[3] = "aaa"; //配列 [0 => "a", 1 => "b", 2 => "c", 3 => "aaa", 4 => "e"]
####オブジェクト指向
hoge.php(継承元)
<?php
class Hoge {
//継承先のクラスから使いたい場合はprotected
protected $name;
//クラス内で完結する場合はprivate
private $hogeCount = 0;
//クラスプロパティにはstaticをつける
protected static $count = 0;
//コンストラクタ
public function __construct($name) {
//thisはインスタンス自身を指す
$this->name = $name;
//selfはクラス自身を指す
self::$count++;
}
//カプセル化(ゲッター)
public function getName() {
return $this->name;
}
//カプセル化(セッター)
public function setName($name) {
$this->name = $name;
}
//カプセル化(ゲッター)
public function getOrderCount() {
return $this->hogeCount;
}
//カプセル化(セッター)
public function setHogeCount($orderCount) {
$this->orderCount = $orderCount;
}
//クラスメソッドにはstaticをつける
public static function getCount() {
return self::$count;
}
}
?>
huga.php(継承先)
<?php
//phpファイルの読み込み
require_once('hoge.php');
//継承
class Huga extends Hoge {
private $type;
public function __construct($name, $type) {
//親クラスのコンストラクタを呼び出している
parent::__construct($name);
$this->type = $type;
self::$count++;
}
public function getType() {
return $this->type;
}
public function setType($type) {
$this->type = $type;
}
}
?>