1
1

More than 3 years have passed since last update.

PHP基礎

Posted at

最初に

今までphpを触ったことがなかったので基礎部分を学習しました。


基礎の基礎

phpはHTMLに埋め込んで使用可能。<?php ?>で囲まれた部分が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;
  }
  }
?>

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1