PHP関数、言語構造

* PDOStatement::bindParam — 指定された変数名にパラメータをバインドする

```
public PDOStatement::bindParam(
    string|int $param,
    mixed &$var,
    int $type = PDO::PARAM_STR,
    int $maxLength = 0,
    mixed $driverOptions = null
): bool
```

#### PDO::prepare

* PDO::prepare — 文を実行する準備を行い、文オブジェクトを返す

```
public PDO::prepare(string $query, array $options = []): PDOStatement|false

変数名->prepare();
```

#### PDOStatement::execute

* PDOStatement::execute — プリペアドステートメントを実行する

```
public PDOStatement::execute(?array $params = null): bool

変数名->execute();
```

#### htmlspecialchars

* htmlspecialchars — 特殊文字を HTML エンティティに変換する

```
htmlspecialchars(
    string $string,
    int $flags = ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401,
    ?string $encoding = null,
    bool $double_encode = true
): string
```

#### trim

* trim — 文字列の先頭および末尾にあるホワイトスペースを取り除く

```
trim(string $string, string $characters = " \n\r\t\v\x00"): string
```

#### empty

* empty — 変数が空であるかどうかを検査する

```
empty(mixed $var): bool
```

#### mb_strlen

* mb_strlen — 文字列の長さを得る

```
mb_strlen(string $string, ?string $encoding = null): int
```

文字列の長さを取得します。

#### filter_var

* filter_var — 指定したフィルタでデータをフィルタリングする

```
filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed
```

#### preg_match

* preg_match — 正規表現によるマッチングを行う

```
preg_match(
    string $pattern,
    string $subject,
    array &$matches = null,
    int $flags = 0,
    int $offset = 0
): int|false
```
#### getDatabaseConnection関数

* データベースにアクセスするためのインスタンス

#### session_start

* session_start — 新しいセッションを開始、あるいは既存のセッションを再開する

```
session_start(array $options = []): bool
```
#### isset関数

* isset関数とは、引数に指定した変数に値が設定されている、かつ、NULLではない場合にはtrue(正)の値を戻り値とします。

それ以外は、戻り値にfalse(偽)の値を返します。

```
bool isset($var1 [, $var2 …])
```

#### echo

* echo — 1 つ以上の文字列を出力する

```
echo(string ...$expressions): void
```

ひとつ以上の(文字列として評価される)式を出力します。末尾に改行やスペースを付加することはありません。

#### foreach

foreach は、配列を反復処理するための便利な方法です。 
foreach が使えるのは配列とオブジェクトだけであり、 別のデータ型や初期化前の変数に対して使うとエラーになります。 
この構造には二種類の構文があります。

```
foreach (iterable_expression as $value)
    文
foreach (iterable_expression as $key => $value)
    文
```

最初の形式は、iterable_expression で指定した反復可能な値に 関してループ処理を行います。各反復において現在の要素の値が $valueに代入されます。

2番目の形式は、さらに各反復で現在の要素のキーを変数 $keyに代入します。

#### unset関数

* unset — 指定した変数の割当を解除する

```
unset(mixed $var, mixed ...$vars): void
```

unset() は指定した変数を破棄します。

関数 unset() の内部動作は、 破棄しようとする変数の型に依存します。

#### PDOStatement::fetch

* PDOStatement::fetch — 結果セットから次の行を取得する

```
public PDOStatement::fetch(int $mode = PDO::FETCH_DEFAULT, 
int $cursorOrientation = PDO::FETCH_ORI_NEXT, 
int $cursorOffset = 0): mixed
```

PDOStatementオブジェクトに関連付けられた結果セットから1行取得します。 mode パラメータは、PDO がその行をどの様に返すかを決定します。


#### password_verify

* password_verify — パスワードがハッシュにマッチするかどうかを調べる

```
password_verify(string $password, string $hash): bool

```

* password_verify()のカッコ内に引数を指定することで、password_verify 関数を利用することが可能です。
* 引数とは、関数を利用する際に指定する値です。引数を変化させることで、柔軟に関数を操作することが可能です。

* パスワードには、使用したパスワードを指定します。変数に代入したものを使用しても良いです。ハッシュ値には、password_hash() 関数で生成したハッシュ値を指定します。変数に代入したものを使用しても良いです。

* パスワードとハッシュが適合する場合に TRUE、それ以外の場合に FALSE を返します。返すというのはプログラミング用語です、一般的な表現でいうと、結果を取得するというイメージです。

#### mb_substr

* mb_substr — 文字列の一部を得る

```
mb_substr(
    string $string,
    int $start,
    ?int $length = null,
    ?string $encoding = null
): string
```
* 文字数に基づきマルチバイト対応の substr() 処理を行います。位置は、 string の始めから数えられます。 
* 最初の文字の位置は 0、2 番目の文字の位置は 1、といったようになります。

#### PDO::lastInsertId

* PDO::lastInsertId — 最後に挿入された行の ID あるいはシーケンスの値を返す

```
public PDO::lastInsertId(?string $name = null): string|false
```

* 最後に挿入された行の ID、 あるいはシーケンスオブジェクトから次の値をを返します。 
これは、構成しているドライバに依存します。
例えば PDO_PGSQL の場合、name パラメータにシーケンスオブジェクト名を指定する必要があります。

#### date

* date — Unixタイムスタンプを書式化する

```
date(string $format, ?int $timestamp = null): string
```

指定された引数 timestamp (Unixタイムスタンプ) を、与えられた フォーマット文字列によりフォーマットし、日付文字列を返します。 
タイムスタンプが与えられない場合は、現在の時刻が使われます。 
つまり timestamp はオプションであり そのデフォルト値は time() の値です。

Unixタイムスタンプはタイムゾーンを処理しません。 
タイムゾーン情報が付加された日付/時刻の情報を書式化するには、 
DateTimeImmutable クラスや、 DateTimeInterface::format() を使って下さい。

#### strtotime

* strtotime — 英文形式の日付を Unix タイムスタンプに変換する

```
strtotime(string $datetime, ?int $baseTimestamp = null): int|false
```

この関数は英語の書式での日付を含む文字列が指定されることを期待しており、 
その書式を Unix タイムスタンプ (1970 年 1 月 1 日 00:00:00 UTC からの経過秒数) に変換しようとします。 

baseTimestamp が指定された場合は、そのタイムスタンプを基準とした相対時刻のタイムスタンプに変換します。 

baseTimestamp が指定されていない場合は、現在時刻を基準とした相対時刻のタイムスタンプに変換します。 

パースされる日付を含む文字列の書式は、 サポートする日付と時刻の書式 で定義されており、考慮すべき微妙な点がいくつかあります。 

サポートする日付と時刻の書式について、読んでおくことを強く推奨します。

```
警告
この関数が返す Unixタイムスタンプ は、タイムゾーンの情報を含んでいません。 
日付/時刻の情報を含めて計算するには、 より多くの機能がある DateTimeImmutable を使うべきです。
```

この関数の各パラメータでは、パラメータ内でタイムゾーンを指定しない限りはデフォルトのタイムゾーンを使います。 

意図的にそうする場合は別として、パラメータごとにタイムゾーンを変えてしまったりしないように気をつけましょう。
 
デフォルトのタイムゾーンを定義する方法については date_default_timezone_get() を参照ください。

#### $_GET

* $_GET — HTTP GET 変数

URL パラメータ (a.k.a クエリストリング) で現在のスクリプトに渡された変数の連想配列です。 
この配列の値は、GETリクエストだけでなく、クエリストリングが含まれた全てのリクエストで収集されることに注意して下さい。

```
例1 $_GET の例

<?php
echo 'Hello ' . htmlspecialchars($_GET["name"]) . '!';
?>
```

#### session_destroy

* session_destroy — セッションに登録されたデータを全て破棄する

```
session_destroy(): bool
```

session_destroy()は、現在のセッションに 関連づけられたすべてのデータを破棄します。
この関数は、 セッションに関するグローバル変数を破棄しません。 また、セッションクッキーを破棄しません。 
セッション変数の利用を再開するには session_start() をコールする必要があります。