LoginSignup
2
0

More than 1 year has passed since last update.

PHP

Posted at

はじめに

PHPの備忘録です。
過去に自己学習でまとめたメモを最近友人に共有したので
どうせならQiitaにもあげようと思い至りました

私個人は普段PHPを書いていません x

基本編

phpは文末に;が必要

変数

$sample = 1;

定数

const SAMPLE = 1;

配列

$array = [1,2,3,4,5];

$names = array('雨', '雪', '晴')

$array[] = 6 // 配列の最後に追加

array_push($array, 7) // 配列の最後に追加(複数追加可能)

array_pop($array) // 最後を削除

array_shift($array) // 最初を削除

オブジェクト

$scores = array(
  "数学" => 70,
  "英語" => 90,
  "国語" => 80
);

$scores["国語"] += 5;

echo $scores["国語"];

条件分岐

$sample = "田中";

if ($sample === "田中") {

  echo "田中です";

} elseif ($sample === "山田") {

  echo "山田です";

} else {

  echo "誰だかわかりません"

}

繰り返し処理


// for文
for ($i = 1; $i <= 100; $i++) {}

//while文
$i = 0;
while ($i < 10) {
  echo $i
  i++;
}

  

// foreach
$ns = [1,2,3,4,5]

foreach ($ns as $n) {
  echo $n
}

  

foreach ($ns as index => value) {
// 連想配列ならindexにkeyが入る
// indexは省略可能
}


繰り返し制御

forifと組み合わせて使う

// 処理を中断する
break
// スキップする
continue

三項演算子

// 条件式 ? trueの時: falseの時

const val1 = 1 > 0 ? "trueです" : "falseです";

console.log(val1); // trueです

テンプレートリテラル

式展開

let $name = "いちご";
let $cost = 100;
echo "{$name}{$cost}円です"

例外処理

try() {

} catch() {

}



基本編2

switch

ifが複雑になる時に使う

$num = tee;

switch($tee) {
  case "baru":
    echo "baruです";
    break;
  default:
    echo "野良です";
    break;
}

関数

// jsの関数宣言と一緒
function add(n1=1, n2=2) {
  echo n1 + n2
}

add()

組み込み関数

strlen('Apple'); // 文字列の長さを返す
count($array); // 配列の長さを返す
rand(1, 4); // 指定の範囲の中でランダムな数字を返す

max($array) // 最高値
array_sum($array) // 合計値

floor(num) // 小数点以下切り捨て

($bob instanceof Person)

end ○○ 構文

foreachをHTMLに埋め込む際に特殊な書き方ができる
可読性を上げることができる

<?php $words = array('apple', 'banana', 'orange'); ?>

<?php foreach ($words as $word): ?>
  <p><?php echo $word ?></p>
<?php endforeach ?>
// ifも同様
<?php if($age >= 20): ?>
  // 処理
<?php endif ?>
// for
<?php for ($i = 0; $i < 100; $i++): ?>
  // 処理
<? php endif ?>

クエリパラメータ

クエリ情報

//?hogeで繋げて指定できる
<a href="show.php?name=<?php  ?>">

// 遷移先では下記のように受け取る
echo $_GET['name']

// 下記のようなオブジェクトで渡ってくる
array (
  'name' => 'HOGE'
)

ファイルの分割

// 下記で読み取り可能
<? require_once('data.php') ?>
// 下記で分けると良さそう
- classの定義
- インスタンス化
- mainのファイル



Class

class Person {
  // プロパティは初期値の設定もできる
  // 子クラスからも参照する場合protectedにする
  private $name;
  public $age;
// protected $tall

  public function __construct($name, $age) {
    $this->name = $name;
    $this->age = $age;
  }
  
  public function hello() {
    echo '私は'.$this->name.'です'.$this->age.'です'
  }
}

// インスタンス化
$bob = new Person("bob", 18)

// ->でプロパティにアクセス (属性/メンバ変数)
$bob->age = 22

echo $bob->hello()

継承

親クラスのプロパティとメソッドを引き継ぐ

class Man extends Person {
  // 独自のプロパティも定義可能
  public $tall;

  public function __construct($name, $age, $tall) {
  // 親クラスのメソッドを呼び出す
    parent::__construct($name, $age)
    $this->tall = $tall
  }
}

// 親クラスのメソッドを利用
echo $bob->hello()

staticプロパティ・メソッド

クラスメソッドのこと

class Person {
  // staticをつける
  private static $count = 0 // 初期値省略可
  
  public function __construct() {
    // selfはクラス自身を指す
    // 初期化のたびにcountがupする
    sefl::$count++;
  }
  
  // staticをつける getter
  public static function getCount() {
    return self::$count
  }
}

// publicなら下記でstaticプロパティにアクセス可能
Person::$count.'品'
echo Person::getCount()

カプセル化

ユーザーに必要な部分を隠して触らせない
クラスのプロパティとメソッドへのアクセスを制限すること

getter
// プロパティをprivateにすると値を参照できない
// getterメソッドを定義して参照できるようにする
public function getName() {
  return $this->name;
}
setter
public function setName($name) {
  $this->name = $name
}

終わりに

BASIC認証やformの書き方もまとめているのですが、長くなってしまうので基本の部分のみ投稿しました。

2
0
1

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
2
0