PHPの記法メモ2


ドットインストールのPHP入門を一周したのでPHPの関数や記法の自分用まとめ。

変数の種類を調べる

引数の内容を文字列として返す。
var_dump("hoge");

→String(4) ※4は文字数

関数の宣言

function hogef(引数){
   処理
}

文字列系関数

乱数生成

1~10の範囲で乱数を返す
rand(1,10);

文字列を数える

1バイト文字
strlen("hoge");
hoge→4

マルチバイト文字
mb_strlen("ねこ");
ねこ→2

配列系関数

配列の要素数を返す
count($arrayhoge);

配列の要素全部を"☆"で区切りながら返す
implode("☆",$arrayhoge);

クラスとインスタンス

インスタンスの宣言

$kinako = new Neko("kinako")

コンストラクタ

public function __construct($name){
$this->name = $name;
}

インスタンスへのアクセスの仕方

$hoge->hogefunc();
$hoge->name;

"->"を使う。(Javaだとhoge.hogefunc();)
頭に$をつけていたら->以降$は必要ないらしい。

アクセス修飾子

final

overrideできなくなる

private

そのクラス内からのみアクセス可能

protected

そのクラス内+親子関係のみ

staticアクセス

"クラス名::メソッド名"という書き方をする。
Cat::getNagasa();

インスタンス内から自クラスのクラス変数にアクセス

"self::変数名"という書き方をする。
self::$hoge++;

抽象クラス

abstract class Cat{
abstract public function meow();
}

クラスファイルを分ける

同じフォルダに"name.class.php"という形式で保存
別のファイルからアクセスする際には予め読み込む処理を行わなければならない。

ファイルを読み込む処理

require

ファイルを読み込む。もし読み込めなかった場合はExceptionを発生させる。

require_once

requireと同じようにファイルを読み込むが、その後同じファイルを読み込めないようにする。

include

ファイルを読み込むが、もし読み込めなかった場合は無視して処理を続行する。

include_once

includeと同じようにファイルを読み込むが、その後同じファイルを読み込めないようにする。

require "Hoge.class.php";
$mhoge = new Hoge();

というようにセットで書く。

autoload

includeやrequireは、使用するクラス一つ一つに対応して書いていかないといけないので手間がかかる。
なので、newした時点でクラスファイルが読み込まれていなかったら行うautoloadという仕組みがある。

spl_autoload_register(function($class){
require $class .".class.php";
});

このように書いておくとある程度requireやincludeを自動化することができる。

名前空間

class宣言の前に
namespace Catcodes\Study\;
と書いておくと、Javaで言うパッケージ宣言ができる。

この場合は、使用クラスのほうでは
$hiyoneko = new Catcodes\Study\Cat("ながい");
という風に書くとその名前空間のクラスを使用することができる。

名前空間の簡略化

use Catcodes\Study\;

または

use Catecodes\Study\ as Piyo;

前者を使用する場合は

$hiyoneko = new Study\Cat("長い");

後者を使用する場合は

$hiyoneko = new Piyo\Cat("長い");

as hoge ~;と書くことで、使用時の名前空間の記述を簡略化することができる。
as hoge~;がない場合は前者の場合だと、as Studyと書いた場合と同じようになるらしい。

html周り

<form>

<form action = "" method ="POST"></form>

action

送信先(hoge.php等)空欄の時は書かれているファイル自体に飛ぶ。

method

データの送信方法の指定

POST

フォームの内容を送信先に送る

<input type ="text">

<input type="text" name="id" placeholder="user name">


このようなテキスト入力ボックスを表示することができる。

name

テキストボックスの名前。

placeholder

初期表示。

<input type="submit">

<input type="submit" value="button">

このような送信ボタンを表示することができる。

value

ボタンに表示する文字。

簡単な状態保存をする機能

setcookie(ブラウザに値を保存する)

setcookie("username","hiyorineko",time()+20;
echo $_COOKIE['username'];

setcookie(変数名,値,有効期限(秒));
setcookieした後は他のファイルからでも同じ変数名でアクセスができる
有効期限を-にしたら削除をすることができる。

cookie.PNG

session(サーバー側に値保持)

session_start();
$_SESSION['username'] = "hiyorineko";
echo $_SESSION['username'];
unset($_SESSION['username']);

session_start();を書いてセッションを開始。変数の指定は$_SESSION['変数名'];という書き方をする。
unset($_SESSION['変数名']);とすることで、保存された変数を削除することができる。