見出し画像

PHP備忘録

勉強しながらメモしたことをそのまま記述しています。

・PHPでできること
見る人や状況に応じて表示するテキストを変えることができる

・PHPテンプレ
<?php
?>

・HTMLの生成
<?php echo '<h2>初級</h2>';?>
<?php echo "<h2>初級</h2>";?>

・行末にはセミコロンが必要なタイプ

・コメント
//

・変数
$name = 'Bob';

echo $name;

・文字列の連結
文字列連結
.
.=

・変数展開
$name = 'にんじゃわんこ';
echo "こんにちは、{$name}さん"→展開
echo 'こんにちは、{$name}さん'→そのまま

if($x)
{
}
elseif(){
}
else
{
}

・論理演算子

&&
||
!($hoge)

・switch
break入れるタイプのやつ

・配列
$names = array('John','Kate','Bob');

echo $names[0];

配列の末尾に値を追加
$names[] = 'Mary';

値の上書き
$names[1] = 'Mary';


・連想配列
$user = array(
'name' => 'わんこ',
'age' => 14,
'gender' => 'male',
);

値の出力
echo $user['name']

値の追加
$user['level'] = 'beginner';

・for
for($i = 1;$i <= 100; $i++){
echo $i;
}

while($i<=100){
}

・foreach
配列か連想配列にしか使えない
$data = array('東京','大阪','京都');

foreach($data as $value){
echo $value;
}

foreach($data as キー変数 => $value){
echo $value;
}
キー変数を省略するとvalueしか使えない

・文字列を数える
echo strlen('Progate');

$language = 'PHP';
echo strlen($language);
->3

・配列の要素数を数える
echo count($data)

・ランダム
echo rand(1,4)
1~4のランダムな整数をかえす

・関数の定義
function printCircleArea($radius,$radius2)
{
echo $radius * $radius * 3;
return $radius2;
}
printCircleArea(3);

かっこはつけて呼び出す


・フォームを作る
<form action = "url", method="post">

</form>

・テキストボックスを作る
フォームの中に1行のものを作る
<input type="text" name="email">
typeでどんなものか決まる
nameはあとでプログラムで制御する用

<input type="sub mit" value="送信">
typeをsubmitにすると送信ボタンになる
valueはボタンに表示したい文字列を表す

フォームの中に複数行のものを作る
<textarea name="content"></textarea>
nameはあとでプログラムで制御する用

<input value="0">
初期値を入れられる

・フォームのデータを受け取る方法
echo $_POST['name']
echo $_POST['email']

$_POSTは特殊な連想配列
内部で勝手に作ってくれる
添え字はinputやtextareaで設定した名前を渡す

・セレクトボックスの作り方
<select name="fruit">
<option value="apple">りんご</option>
<option value="banana">ばなな</option>
<option value="orange">みかん</option>
</select>

この場合、PHPでのキーはselectのnameになり、入ってる中身は選択されたもののvalueになる

・変数展開を使ったセレクトボックス
for($i = 1; $i < 4; $i++)
{
echo "<option value='{$i}'>{$i}</option>"
}

・phpではクラスが使える
<?php
class Menu{
// クラスの内容を書く
public $name;
public function hello(){
echo '私はMenuインスタンスです';
}
}
$menu1 = new Menu();
$curry->name='CURRY';
※ ↑$は不要
$menu2 = new Menu();
$menu3 = new Menu();
$curry->hello();
?>


・$this
メソッド内でインスタンスのやつにアクセスしたいときに使うやつ
$this->nameのように使う

・コンストラクタ
public function __construct(){
echo '1つのメニューが作成されました';
}

引数つきコンストラクタ
public function __construct($name){
echo $name;
}

・PHPでセミコロンを使う理由
複数行書くときのみ必要。1行のみならいらない

・PHPの特徴
途中でPHPを終わらせてHTMLに戻っても次またPHPを始めたら今まで読み込まれてたものはすぐ使える

・endforeach
<?php
$words = array('apple','banana','orange');
?>
<?php foreach($words as $word): ?>
<p><?php echo $word ?></p>
<?php endforeach?>

このようにHTMLと混在するときはend〇〇を使う
endifとelseとelseifとendforも同様の形でOK
中かっこの{は:にする!


・require_once
インクルードのようなもの
require_once('menu_php');

・HTMLの""の中にphpコードを入れると値はそのままセットされず、phpが実行される

・カプセル化
private

・ゲッター
returnするだけなやつ
特別な書き方はなさげ

・セッター
セットするだけなやつ
特別な書き方はなさげ

・クラスのメンバ宣言時に初期値を入れることができる

・クラスプロパティとは
クラスの持つデータのこと
public static $count = 4;
のようなやつ。staticをつけるとクラスプロパティになる。

クラスプロパティにアクセスするには
Menu::$count
のようにする。めんどくせぇ・・・。

クラスプロパティにアクセスするにはselfを使う。
thisはメンバ変数、selfはstaticなクラスプロパティに使う。
たとえばコンストラクタで扱うときは
self::$count++;のように使う。
メンバ変数は
$this->nameとか
selfはクラス名を表すからか!!!
なるほど!!!

・クラスメソッド
個々のインスタンスのデータに関係ない処理ではクラスメソッドを使う。

定義は関数をprivateにしてstaticをつける
public static function getCount(){
return self::$count;
}

使うとき
echo Menu::getCount();

・継承
class 子クラス extends 親クラス{
}
※末尾にセミコロンはいらない

・あるインスタンスがどのクラスのインスタンスかを判別する方法
instanceofを使う

if($coffee instanceof Drink){
echo $coffee->getName();.'はDrinkクラスのインスタンスです';
}

これtrueになるから表示される

・オーバーライド
ある

・protected
子クラスからでも親クラスのprivateのメンバ変数を呼び出すことはできない。
それができるようにするためにはprotectedを使用する。

・parent
親のメソッドを呼び出すときに使う
parent::__construct($name,$price,$image);

・リンクを作成する
aタグを使う
<a href="show.php">
<p><?php echo $menu->getName() ?></p>
</a>

・リンク先に情報を渡す
クエリ情報

<a href="show.php?name=<?php echo $curry->getName() ?>">

キー名=値のように指定する。
受け取る側は、

echo $_GET['name']
のようにすることで、
CURRY
と取得することができる。
$_GETの中身は連想配列になっている
array(
'name' => 'CURRY'
)

・特定のメニューインスタンスを取得する方法

①クラスにインスタンスを検索する関数を作成する
②Menu::findByName($menus,'CURRY');
③echo $menu->getName();

・Reviewクラスを作成する
class Review{
private $menuName;
private $body;
}

・空の配列を追加する
array();


この記事が気に入ったらサポートをしてみませんか?