PHPの初心者向けできること概要(60%@18/09/14)

# 概要
### 内容
プログラミング初心者さん向けに、PHPの機能を大雑把にお伝えし、「こういうことがしたい」というときにできるのかを確かめたりするために使ってもらえたらと思います。


### 対応
これからPHPを利用してプログラミングを行おうとする初心者さんに向けた記事です。
だいたいどんなことができるかがわかるはずです。
　
### 出典
http://jp2.php.net/manual/ja/extensions.membership.php
基本的にここにある内容をまとめただけです。




# 内容
### データを管理する
- クラス/オブジェクト
    - クラスやインスタンスオブジェクトに関する情報を得ることが可能となります。 
    - オブジェクトが属するクラスの名前、そのメンバープロパティ、メソッドを取得可能
    - オブジェクトのクラスメンバーだけでなく親クラス (すなわちそのオブジェクトクラスの派生元) の情報を得ることも可能
    - http://jp2.php.net/manual/ja/book.classobj.php
- 配列
    -  配列は、変数の組を保存、管理、操作する基本的な要素
    -  配列にアクセスし、操作する
    -  http://jp2.php.net/manual/ja/book.array.php
- Data/Time
    - PHP スクリプトを実行するサーバーから 日付と時間を取得することが可能となります。
    - 異なる方法で日付や時間をフォーマットするために これらの関数を使用
    - http://jp2.php.net/manual/ja/book.datetime.php
- 文字列
    - 文字列の操作に関するもの。正規表現やURL処理なども扱う。
    - マニュアルの文字列エントリも参照すること。
    - http://jp2.php.net/manual/ja/book.strings.php
- 共有メモリ




### 計算/データ処理
- CSPRNG
    - 暗号化に関係うる簡易的な機能と、乱数の生成を提供する
    - http://jp2.php.net/manual/ja/book.csprng.php
- Math
    - 数学関数
    - 絶対値
    - 値の操作（切り上げ、切り捨て、剰余、乱数）
    - 単位・進数変換
    - 三角関数計算
    - 対数計算
    - 値の判定（無限）
    - 決定（最大値、最小値）
    - http://jp2.php.net/manual/ja/book.math.php
- Hash
    - HASH メッセージダイジェストフレームワーク
    - さまざまなハッシュアルゴリズムを使用して、任意の長さのメッセージに対する 直接的あるいは段階的な処理を行う
    - http://jp2.php.net/manual/ja/book.hash.php
- パスワードのハッシュ
    -  パスワードの作成や管理を安全な方法で行えます。
    -  http://jp2.php.net/manual/ja/book.password.php
- Tokenizer
    - Zendに組み込まれたPHP tokenizerへのインタフェースを提供する。
    - これによって、軸解析をせず、PHPの解析と修正を可能とする。
    - http://jp2.php.net/manual/ja/book.tokenizer.php
- BC Math
- カレンダー
- JSON




### ファイルを扱う
- ディレクトリ
    - ハンドルやインスタンスを通じて、ディレクトリの操作を行う。
    - 指定されたパスのファイルとディレクトリのリストの取得なども行う
    - http://jp2.php.net/manual/ja/book.dir.php
- ファイルシステム
    - ファイルのパス・グループやモード、最終アクセス時刻などのメタ情報を操作・取得
    - ファイルのコピーや削除、リネーム
    - ファイルのオープンやクローズ
    - ファイルデータの読み書き
    - CSVへのコンバート
    - ファイルリンクの操作
    - 設定ファイルのパース
    - プロセスのファイルポインタ操作
    - `Linux 上で LFS (ラージファイル) をサポートする PHP を希望する場合は、 最新の glibcが必要`
    - http://jp2.php.net/manual/ja/book.filesystem.php
- Filter
    - データの検証や除去を行います
    - 知の (外部からの) データ、たとえばユーザーの入力などを扱う際に便利
    - 検証は、データが何らかの条件を満たしているかどうかをチェック
    - 除去は、望まれていない文字を除去するなどしてデータを変更
    - 必要に応じて フラグ を使用して挙動を変更することができます。
    - http://jp2.php.net/manual/ja/book.filter.php
- Fileinfo
- Phar
    - PHP アプリケーション全体をひとつの "phar" (PHP Archive) ファイルにまとめてしまい、配布やインストールを容易にするためのもの
    - 外部ファイルの使用、アーカイブ内のファイルの使用
    - phar では tar、zip、phar ファイルフォーマット間の変換がコード 1 行だけでできてしまいます。
    - `phar アーカイブを作成したり変更したりするには、php.ini の設定 phar.readonly をシステムレベルで無効にする必要があります。
    - http://jp2.php.net/manual/ja/book.phar.php`




### プログラムの制御
- エラー処理
    - エラー処理およびログ記録を行います。
    - 独自のエラー処理規則や、記録方法を定義・修正することが可能になる
    - 他のマシンやemailに直接送信もできるようになる
    - http://jp2.php.net/manual/ja/book.errorfunc.php
- システムプログラムの実行
    - システム自体の上でコマンドを実行したり、 こうしたコマンドを安全に実行する手段を提供します。
  をコール
    - http://jp2.php.net/manual/ja/book.exec.php
- 関数処理
    - 関数で行う様々な処理を行います
    - コールバックのコール
    - 静的メソッドのコール
    - 引数リストから要素を取得
    - 関数の重複確認
    - シャットダウン時に実行する関数を登録
    - tickでの関数を登録・削除
    - http://jp2.php.net/manualja/book.funchand.php
- リフレクション
    - クラス、インターフェイス、関数、メソッド、そして拡張モジュールについて リバースエンジニアリングを行うことができます。
    - 関数、クラス、メソッドに 関するドキュメントコメントも取得することができます。
    - http://jp2.php.net/manual/ja/book.reflection.php
- 変数操作
    - 変数の操作に関する処理
    - 値のチェックや変換、直列化やダンプ処理など
    - http://jp2.php.net/manual/ja/book.var.php



### ネットワーク
- メール
    - メールを送信できる
    - http://jp2.php.net/manual/ja/book.mail.php
- ネットワーク
    - 名前解決関連（DNSレコード検索、IPホスト関係、プロトコル）
    - HTTP操作
    - システムログ操作
    - http://jp2.php.net/manual/ja/book.network.php
- Sessions
    - 複数回のアクセスを通じて特定のデータを保持する手段を実現するもの
    - サイトの訪問者にはIDが割り振られており、それを利用してデータ保持を行ったりできる。
    - セッションそのものの開始や終了も制御できる
    - http://jp2.php.net/manual/ja/intro.session.php
- URLs
    - URL文字列を処理(エンコード、デコード、パース)します。
    - http://jp2.php.net/manual/ja/book.url.php
- Apache
- FTP
- ソケット
- SQLite3 
- XML-RPC
- Zlib



### その他 
- PHP Options/info
    - PHP自体に関する多くの情報(実行時の設定、 ロードされている拡張モジュール、バージョン等)を 得る
    - 実行しているPHPのオプションを設定する
    - 様々な assertの設定
    - プロセスの操作と設定
    - ガベージサイクルの操作
    - 循環参照の設定
    - 環境変数、最終更新時刻
    - 割り当てメモリの量
    - PHPが稼働しているOSの情報
    - 一時ファイル用の設定
    - 現在のスレッドのID
    - http://jp2.php.net/manual/ja/book.info.php
- その他
    - 他のカテゴリには当てはまらない関数群
    - 接続ステータス
    - 定数の定義と管理
    - 終了
    - ユーザーのブラウザの機能を取得
    - コンパイラの実行を中止
    - 文字列をPHPとして評価
    - 実行遅延
    - システムの負荷取得
    - http://jp2.php.net/manual/ja/book.misc.php
- 出力制御
    - 出力バッファリング制御
    - スクリプトから送信される出力を制御する
    - 複数の異なった場面、特にスクリプトがデー タ出力を開始した後にヘッダをブラウザに送信する必要がある場合に有用
    - バッファの操作、ハンドラの操作
    - `出力制御関数は、echo のような関数とPHPコードのブロック間 のデータにのみ作用します`
    - http://jp2.php.net/manual/ja/book.outcontrol.php
- SPL
    - Standard PHP Library
    - 標準的な問題を解決するためのインタフェースやクラスをあつめたもの。
    - データ構造、イテレータ、インタフェース、例外、関数、ファイル操作などができる。
    - http://jp2.php.net/manual/ja/book.spl.php
- ストリーム
    - ファイル・ネットワーク・データ圧縮などに関する一般化された操作を集めたもの。
    - 特定のプロトコル・エンコーディングを扱うラッパーなどもある。
    - リソースとして、ターゲットをスキーム経由で扱う。
    - http://jp2.php.net/manual/ja/book.stream.php
- Ctype
- DBA
- iconv
- GD
- マルチバイト文字
- OPcache
- PDO
- セマフォ




### 非推奨

- POSIX Regex
    - 正規表現
    - `この機能は PHP 5.3.0 で 非推奨 となり、 PHP 7.0.0 で 削除`
    - http://jp2.php.net/manual/ja/book.regex.php