-
クライアント
ほかのコンピューターに対して何らかの依頼(要求)を行い、その結果を受け取るコンピューターのこと
-
サーバー
ほかのコンピューターに対して情報やサービスを提供するコンピューターのこと
-
データーベースサーバー
大量のデータを管理するサーバー
-
メールサーバー
電子メールを受け渡しするサーバー
-
FTPサーバー
ファイルを転送するためのサーバー
-
Webサーバー(HTTPサーバー)
クライアントからの要求を受けて、その処理結果を応答する窓口
-
HTTP(HyperText Transfer Protocol)
クライアントからの要求に対して、サーバーが応答するという約束事
-
プロトコル
コンピューター同士がデータをやり取りするためのルール
-
静的なページ
クライアントからの要求で、サーバー側でなんの加工もせずに返されるファイル
-
動的なページ
クライアントから送られた情報を利用して、サーバー側で加工して返されれファイル
-
クライアントサイド技術
クライアント側にスクリプトと必要なデータをダウンロードし、クライアント上で実行する仕組み
データを保存する手段がない
-
サーバサイド技術
サーバー側であらかじめ決められた処理を行い、その結果をクライアントに返す仕組み
-
SPA(Single Page Application)
単一のページで構成されるWebアプリのこと
-
ブラウザー
サーバにアクセスするためのクライアントソフトウェア
-
コードエディター
コードを編集するためのソフトウェア
-
PHP
PHPスクリプトを実行するための環境
-
文字コード
文字に割り当てられたコード
-
文字エンコーディング
実際の文字と文字コードの対応関係のこと
-
エンコード
サーバー側で、文字列を文字コードに変換する
-
デコード
クライアント側で、文字コードを文字列に変換する
-
文字化けが起こる原因は?
データを渡す側と受け取る側とで想定している文字コードが異なることで起こる
-
改行コード
行を折り返すための特殊な文字
-
ソースコード
人間が入力したコード
-
コンパイラー
ソースコードをコンピュータ言語に一括翻訳してから実行する
-
インプリンター
ソースコードを実行時にコンピュータ言語に翻訳する
-
HTML埋め込み型言語
HTMLコードの中に<?php~?>というブロックを埋め込んでその中に命令文を記述する
-
HTMLコードとPHPスクリプトを区切るための記号をなんという?
スクリプティングデリミター PHPタグ
<?php ~?>
-
print命令
指定された文字列をクライアントに出力しなさいという命令
print 'こんにちは’;
-
コメント
<! ~ > HTMLコメント
//,# 単一行のコメント
/* ~ */ 複数行のコメント(単一行のコメントとして使用しても良い)
-
PHP本体には、開発に必要なドキュメントやサンプルなどが含まれている?
PHPにドキュメントやサンプルは含まれていない。
-
PHPが動作可能なWebサーバーはApache HTTP Serverに限定される?
NginxなどのWebサーバーでも動作する。
-
httpd.conf
Apache標準の設定ファイル
-
php.ini
PHP標準の設定ファイル
-
Webサーバーは、クライアントから送信されたデータを保存し、管理する役割を担う?
データを保存・管理するのは、データベースサーバー
-
変数
データの入れ物
-
初期化するとは
変数に最初の値を代入すること
-
「=」演算子
右辺の値を左辺の変数に代入
-
参照するとは
名前を指定して変数の値を取り出すこと
print 変数名
-
代入とは
変数に値を格納すること
-
識別子
コードの中で変数や定数、関数などに付けられた名前のこと
-
可変変数
変数名を変数の値によって決めることができる変数
先頭に$$とつけることで別の変数の値で動的に決定する
-
定数
値の変更ができないテータの入れ物
const 定数名 = 値
difine関数('定数名', 値)
-
const命令
定数を宣言するための命令
トップレベル以外で宣言ができない
変数・関数の戻り値を代入して宣言できない
-
difine関数
定数を宣言するための命令
クラス定数の宣言ができない
-
_ _FILE_ _
実行中のフィル名(絶対パス)
-
_ _DIR_ _
実行中のファイルが存在するディレクトリ
-
_ _LINE_ _
実行中の行番号
-
_ _FUNCTION_ _
実行中の関数名
-
_ _CLASS_ _
実行中のクラス名
-
_ _METHOD_ _
実行中のメソッド名
-
_ _TRAIT_ _
実行中のトレイト名
-
_ _NAMESPACE_ _
現在の名前空間
-
DIRECTORY_SEPARATOR
ディレクトリの区切り文字
-
PATH_SEPARATOR
パスの区切り文字
-
PHP_VERSION
使用しているPHPのバージョン
-
静的型付け言語
変数の型がコンパイル時に決まる言語(例: Java, C++)。
-
動的型付け言語
動的型付け言語: 変数の型が実行時に決まる言語(例: JavaScript, Python)
-
スカラー型
1つの変数で1つの値だけを扱うことができるもの
-
複合型
1つの変数で複数の値を扱うことができるもの
-
特殊型
スカラー型/複合型のいずれにも分類できないもの
-
論理リテラル(bool)
true/false どちらかの状態を持つ
-
整数リテラル(int)
10進数リテラル、2進数リテラル、8進数リテラル、16進数リテラルに分類できる
-
10進数リテラル
正数、負数、ゼロを表現できる
-
2進数リテラル
0と1で数値を表現、接頭辞には「0b」を付与する
-
8進数リテラル
0~7で数値を表現、接頭辞には「0」を付与する
-
16進数リテラル
0~9、a~f で10~15を表現、接頭辞には「0x」を付与する
-
浮動小数点リテラル(float)
小数点を含む数値リテラルで、実数値を表現するために使用される
-
指数表現
数値を基数と10の累乗で表す形式で、大きな数値や小さな数値を簡潔に表現する
<仮数部>e<符号><指数部>の形式で表される
例)1.4142e10 → 1.4142×10の10乗 → 14142000000.0
1.73205e-7 → 1.73205×10の-7乗 → 0.0000001173205
-
数値セパレーター
数値リテラルの中に記述できる桁区切り文字( _ )
例)$value = 1_234_567;
-
文字列リテラル(string)
シングルクォート、ダブルクォートでくくられた0文字以上の文字
-
変数展開
ダブルクォート文字列リテラルは、文字列に含まれる変数を解釈し、値を置き換えること
-
エスケープシーケンス
特殊な意味をもち、「\文字」の形式で表現する文字のこと
-
\r
復帰
-
\n
改行
-
\t
水平タブ
-
\v
垂直タブ
-
\f
フォームフィード
-
\$
ドル記号
-
\\
バックスラッシュ
-
\"
ダブルクォート
-
\nnn
3桁の8進数nnnで表された文字
-
\xnn
2桁の16進数nnで表された文字
-
\u{nnnn}
4桁の16進数nnnnで表されUnicode文字
-
ヒアドキュメント
改行を含むような長い文字列を表すのに適した記法
<<<EOD
文字列
EOD;
-
Modoc構文
<<<’EOD’
文字列
EOD;
-
配列(array)
複数の値を持つ
$配列名 = [ 値1, 値2 … ]
-
ブラケット構文
配列へアクセスする
$配列名[インデックス番号]
-
配列またはオブジェクトなど複合型の変数を出力する関数
print_r(変数名)
-
連想配列
文字列キーを使って要素を管理する配列
$連想配列名 = [キー1=値1, キー2 = 値2…]
-
1次元配列
インデックスが1つだけの配列
-
2次元配列(多次元配列)
インデックスが2個の配列、配列の配列
-
3次元配列(多次元配列)
インデックスが3個の配列、配列の配列の配列
-
配列と連想配列の入れ子
配列の中に連想配列
-
オブジェクトリテラル(object)
-
コールバックリテラル(callable)
-
リソースリテラル
-
ヌル
変数が値を持たないことを表す
-
暗黙的な変換
その時々の状況に応じて値を適切なデータ型へ返還すること
-
キャスト
明示的にデータの型を変換すること
(データ型)値
-
var_dump関数
データ型も加味した変数の情報を出力する関数
-
演算子(オペレーター)とは
与えられた変数やリテラルに対して、あらかじめ決められた処理を行うための記号
-
オペランドとは
演算子によって処理される変数・リテラルの事
-
代数演算子
算術演算子ともいう。
日常的な数学で利用する演算子
-
数値の和
+
-
数値の差
ー
-
数値の積
*
-
数値の商
/
-
数値の余剰
%
-
数値の累乗
**
-
インクリメント
++
-
デクリメント
ーー
-
前置加算
$x=3;
$y=++$X;
代入前に加算
$yは4
-
後置加算
$x=3;
$y=$X++;
代入後に加算
$yは3
-
前置減算
$x=3;
$y=++$X;
代入前に減算
$yは4
-
後置減算
$x=3;
$y=++$X;
代入後に減算
$yは4
-
マジカルインクリメント
プログラム内で英数字の組み合わせを扱い、文字列の一部(通常は先頭の英字部分)を維持しつつ、末尾の数値部分を自動でインクリメント(増加)する仕組み
-
floor()
小数点を切り捨てるための関数
-
無限循環小数
-
任意制度数学関数
bcadd(加算)
bcsub(減算)
bcmul(乗算)
bcdiv(除算)
bccomp(比較)
bcxxxxx(左オペランド,右オペランド,小数点以下の桁数)
例:bcadd(0.1, 0.7, 1);は「0.1+0.7を小数点以下1桁まで計算しなさい」という意味となる
-
加算演算子で配列の結合を行う場合、注意することは
左の配列に存在しないキーの要素を右の配列から取り出し、左の配列に追加されるということ
右の配列に左の配列と同じキーがあった場合、その値は無視される
-
代数演算子
左辺で指定した変数に対して、右辺の値を代入するための演算子
-
変数などに値を代入
=
-
左辺と右辺を加算した結果を、左辺に代入
+=
-
左辺から右辺を乗算した結果を、左辺に代入
ー=
-
左辺と右辺を乗算した結果を、左辺に代入
*=
-
左辺を右辺で累乗した結果を、左辺に代入
**=
-
左辺を右辺で除算した結果を、左辺に代入
/=
-
左辺を右辺で除算した余りを、左辺に代入
%=
-
左辺と右辺を連結した文字列を、左辺に代入
.=
-
左辺が非nullならその値を、nullなら右辺の値を代入
??=
-
左辺と右辺をビット論理積した結果を、左辺に代入
&=
-
左辺と右辺をビット論理和した結果を、左辺に代入
|=
-
左辺と右辺をビット排他論理和した結果を、左辺に代入
^=
-
左辺を右辺の値だけ左シフトした結果を左辺に代入
<<=
-
左辺を右辺の値だけ右シフトした結果を左辺に代入
>>=
-
複合代入演算子
左辺と右辺の値を演算した結果を左辺に代入するための演算子
-
参照(リファレンス)による代入
メモリ上のアドレスそのものを引き渡す代入の事
=の後方に&演算子を指定する
-
分割代入
配列などを分解し、配下の要素を個々の変数に代入するための構文
$data = [1, 2, 3, 4, 5];
[$a, $b, $c, $d, $e] = $data;
-
一部だけ分割代入する方法
$data = [1, 2, 3, 4, 5];
[ ,$a, , $b, $c] = $data;
[1 => $a, 4 => $b] =$data; ※インデックス値=>変数
-
比較演算子
左辺と右辺の値を比較し、その結果をture / falseとして返す
-
左辺と右辺の値が等しい場合はtrue
==
-
左辺と右辺の値が等しく、かつ、同じデータがである場合はtrue
===
-
左辺と右辺の値が等しくない場合はtrue
!=
-
左辺と右辺の値が等しくない場合はtrue
<>
-
左辺と右辺の値が等しくない、または、同じデータ型ではない場合true
!==
-
左辺が右辺より小さい場合true
<
-
左辺が右辺より大きい場合true
>
-
左辺が右辺以下の場合true
<=
-
左辺が右辺以上の場合true
>=
-
宇宙船演算子
左辺が右辺より小さい場合には-1、
左辺と右辺が等しい場合は0、
左辺が右辺より大きい場合は1
<=>
-
条件演算子
条件式?式1:式2
条件式がtrueの場合は式1、falseの場合式2
?:
-
null合体演算子
左辺がnullでなければその値、左辺がnullならば右辺の値、
左辺も右辺もnullの場合はnull
??
-
論理演算子
複数の条件式を論理的に結合し、その結果をtrue/falseとして返す
-
論理積
左右の式がともにtrueの場合にtrue
&&
and
-
論理和
左右の式いずれかがtrueの場合にtrue
||
or
-
排他的論理和
左右の式いずれかがtrueで、かつ、双方ともtrueではない場合にtrue
xor
-
否定
式がtrueの場合はfalse、falseの場合はtrue
!
-
ビット演算子
ビット演算を行うための演算子
-
ビット演算
整数を2進数で表したときの各桁に対して論理計算を行う演算のこと
-
文字列演算子
.
-
実行演算子
`
-
エラー制御演算子
@
-
演算子の優先順位
異なる演算子の処理順序を決める
-
演算子の結合測
同じ優先順位の演算子を処理する順序を決める
-
左結合の結合測をもつ演算子
左から順に処理が行われる
算術演算子(*、/、%、+、-)
ビット演算子
論理演算子(&&、||)
条件演算子
-
右結合の結合測をもつ演算子
右から順に処理が行われる
算術演算子(**)
論理演算子(!)
代入演算子
-
非結合の結合測を持つ演算子
結合しない
比較演算子
-
オブジェクト指向プログラミング
プログラム上で扱う対象をオブジェクトに見立て、オブジェクトを中心にコードを組み立てていく手法のこと
-
クラスライブラリ
-
変数
データを保持できる、データを処理できない
-
関数
データを保持できない、データを処理できる
-
クラス
データを保持できる、データを処理できる
-
インスタンス化
クラスをもとにコピーを作る
$変数名=new クラス名([引数, …])
-
インスタンス
インスタンス化によってできる複製
-
メンバー関数
クラスに属する関数、メソッド
-
メンバー変数
クラスに属する変数、プロパティ
-
アロー演算子
->
-
インスタンスメソッド/インスタンスプロパティの呼び出し
オブジェクト変数 -> メソッド名([引数, …)]
オブジェクト変数 -> プロパティ名[=値]
インスタンス化して呼び出す
-
null安全演算子
?->
オブジェクトが非nullの時だけ、そのメンバーにアクセスしたい
-
静的メソッド
-
静的プロパティ
-
静的メソッド/静的プロパティの呼び出し
クラス名 :: メソッド名([引数,…])
クラス名 :: プロパティ名[=値]
インスタンス化しなくても呼び出せる
-
クラス定数の呼び出し
クラス名 :: 定数名
-
DateTimeクラス
日付/時刻の演算や整形を行う
new DateTime(日付/時刻文字列(初期値"now”),タイムゾーン)
-
formatメソッド
日付/時刻文字列を整形するためのメソッド
-
日付/時刻文字列
日付/時刻として解釈できる文字列
YYYY/MM/DD hh:mm:ss
-
DateTimeZoneクラス
タイムゾーンを指定する
new DateTimeZone(タイムゾーン)
-
setDate/setTimeメソッド
年月日、時分秒を個別に設定する
DateTimeオブジェクト -> setDate(年、月、日)
DateTimeオブジェクト -> setTime(時、分、秒)
-
Unixタイムスタンプ
-
createFromFormatメソッド
日付/時刻文字列を解析する
-
add/subメソッド
日付/時刻文字列を加算/減算する
-
DateIntervalクラス
-
間隔指示子
-
diffメソッド
日付/時刻値の差分を取得する
-
checkdate関数
日付が妥当かを判定する
-
date関数
-
time関数
-
mktime関数
-
strtotime関数
-
DirectoryIteratorクラス (ディレクトリイテレーター)
指定したディレクトリは以下のファイル情報にアクセスする
インスタンス化することでディレクトリを開く
インスタンス化したオブジェクトをforeachで配下の要素を取得することでファイルにアクセスできる
-
getATime()
-
getCtime()
-
getBasename()
-
getMTime()
-
getPath()
-
getPathname()
-
getSize()
-
isDir()
-
isFile()
-
isLink()
-
Composer
-
スクレイピング
サイト上のページから情報を抽出するための技術
-
マッシュアップ
ネットワーク上で提供されているサービスを組み合わせて自作のアプリに取り込む技術
-
Guzzle
HTTP経由で外部の情報/サービスにアクセスするための手段を提供する
-
GuzzleHttp\Clientクラス
-
コンストラクター
-
requestメソッド
-
リクエスト情報
クライアントからサーバーに送信される情報
-
URL
-
HTTP
-
プロトコル
-
デベロッパーツール
-
HTTPメソッド
リクエスト情報で確認できる
クライアントからサーバーに対して発行する直接の命令
メソッド名 / コンテンツへのパス / プロトコル情報 で構成されている
-
GET
指定したコンテンツを取得するための命令
-
HTTPステータス
レスポンス情報で確認できる
サーバーでの処理結果
プロトコル情報 / ステータスコード / ステータスメッセージ で構成されている
-
200 OK
処理成功を表す
-
401 Unauthorized
HTTP認証を要求している
-
302 Found
サーバーから渡された情報からリダイレクトしたこと表す
-
スーパーグローバル変数
-
$_POST
HTMLフォームから渡された情報
-
$_GET
クエリ情報経由で渡された情報
-
$_FILES
アップロードされたファイルに関する情報
-
$_SERVER
リクエストヘッダーまたはサーバー固有の変数情報
-
$_ENV
サーバー側で定義された環境変数
-
$_COOKIE
クッキー経由で渡された情報
-
$_SESSION
セッション経由で渡された情報
-
$_REQUEST
$_GET、 $_POST、 $_COOKIE をまとめて管理する
-
エスケープ処理
-
セッションとは
ユーザーとサーバー間の一連のやり取りを追跡する仕組み
HTTPはステートレス(状態を保持しない)のため、
セッションを使ってユーザーの情報(ログイン状態など)を保持する
通常、セッションIDという一意の識別子がクッキーに保存され、
それを使ってサーバーが特定のユーザーとその状態を識別・管理する
-
属性
特定のオブジェクトや要素に付加される特徴や性質
-
ドキュメンテーションコメント
ソースコード内で特定の構文に従って記述され、プログラムの動作や使用方法、メソッドやクラスの目的などを説明するコメントのこと
-
デバッグ
バグを取り除くための作業
-
クロスサイトスクリプティング攻撃(XSS)
攻撃者が不正なスクリプトをWebフォームなどに入力、送信し、ブラウザで実行させる
【対策】
・ユーザーからの入力データをエスケープする
・クライアントサイドでの入力検証を行う
-
エスケープ
文字や文字列を元の表記と同じ意味を持つ別の表記に置き換える処理
-
入力検証
-
SQLインジェクション
不正なSQLクエリをWebフォームなどに入力、送信し、データベースを操作する攻撃
【対策】
・プリペアドステートメントを使用する
・クエリ内のユーザー入力をサニタイズ(無毒化)し、エスケープする
-
プリペアドステートメント
-
サニタイズ
利用者が入力した文字やコードを安全な形に変換する処理
-
OSコマンドインジェクション
攻撃者が不正なOSコマンドをWebフォームなどに入力、送信し、実行させる攻撃
【対策】
・ユーザー入力をエスケープし、許可されたコマンドのみ実行する
・システムコマンドの実行を制限する
-
インジェクション(injection)
注射
-
nullインジェクション
(nullバイト攻撃)
null文字(\0)を使用して、ファイル操作などでバイパスを試みる攻撃
【対策】
・ファイルパスのバリデーションを行う
・ヌルバイトを削除する
-
バイパス
通常の処理や手続きを省略して、別の方法で目的を達成すること
-
バリデーション
値の検証(正しい値がどうか)
-
メールヘッダインジェクション
電子メールヘッダに不正なデータを挿入し、スパム送信などを行う攻撃(なりすまし)
【対策】
・ユーザー入力をエスケープし、適切なバリデーションを行う
・メールヘッダの構築に信頼できる関数を使用する
-
クロスサイトリクエストフォージェリ
(CSRF)
ログインしているユーザに不正なリンクを踏ませることで、あたかもそのユーザが操作したかのように、Webアプリに対して不正なリクエストを送信する攻撃
【対策】
・ワンタイムトークンの発行と検証
・リクエスト送信元のリファラーの確認
・reCHAPTHAの実装
-
リファラー
ユーザがあるWebページを訪れる際に経由したWebページの事
-
reCHAPTHA
"私はロボットではありません"のようなメッセージでマウスでチェックをさせたりする機能。
-
パストラバーサル
(ディレクトリトラバーサル)
攻撃者がウェブアプリケーションの許可なしにファイルシステム内のファイルにアクセスする攻撃
【対策】
ユーザー入力から外部ファイルへのパスを適切に制御し、許可されたディレクトリ内でのみファイル操作を許可する
-
セッションハイジャック
攻撃者が合法的なユーザーセッションを奪取し、不正なアクセスを行う攻撃
【対策】
・セッションIDを安全に保管し、HTTPSを使用する
・セッションタイムアウトを設定し、長期間のセッションを避ける
-
セッション
特定の期間中にユーザーとシステムが相互にやり取りする状態
-
ファイルアップロード攻撃
攻撃者が不正なファイルをアップロードし、ウェブサーバーやアプリケーションに対する攻撃を行う
【対策】
アップロードされたファイルの拡張子とコンテンツを検証し、不正なファイルをブロックする
-
eval攻撃
eval 関数などを通して、攻撃者が不正なコードを実行させる攻撃
【対策】
eval 関数を使わない
-
eval関数
文字列として渡されたPythonの式やコードを実行するための組み込み関数
-
インクルード攻撃
ファイルのインクルード機能を悪用して、不正なコードを実行させる攻撃
【対策】
・ユーザー入力をファイルパスとして使用する前に適切なバリデーションと制御を行う
・不要なファイルの読み込みを制限する
-
プログラムの構造の順次とは
記述された順に処理を実行
-
プログラムの構造の選択とは
条件によって処理を分岐
-
プログラムの構造の反復とは
特定の処理を繰り返し実行
-
順次・選択・反復を組み合わせてプログラムを組み立てていく手法のことをなんというか
構造化プログラミング
-
if命令
与えられた条件式がtrue・falseのいずれであるかによって、実行すべき処理を分岐する命令
if(条件式){
条件式がtrueのときに実行する処理
}else{
条件式がfalseのときに実行する処理
}
-
switch命令
等価演算子による多岐分岐
switch(式){
case 値1:
式==値1であるときの処理
case 値2:
式==値2であるときの処理
case 値3:
式==値3であるときの処理
default:
式==値1、2、3でもないときの処理
}
-
break命令
現在のswitchブロックから脱出するための命令
ループからも抜けられる(foreach、for、whileでも使用できる)
-
switch命令のcase句にbreak命令がないとどうなるか
後続のcase句が続けてじっこうされてしまう
-
フォールスルー
break命令を省略して、複数のcase句を続けて実行する
-
match式
値を返せるswitch
match(式){
値1=>式1,
値2=>式2,
default=>式,
}
-
match式のswitch命令との相違点
「===」演算子で比較
break句は不要
=>の右辺には単一の式
=>の左辺には任意の式指定できる
-
while命令
与えられた条件式がtrueである間、ループを繰り返す命令
while(条件式){
条件式がtrueである間繰り返し実行する処理
}
-
while命令と do~while命令の違いは?
while命令がループの先頭で条件式を判定(前置判定)するのに対して、
do~while命令はループの最期に判定(後置判定)している
-
無限ループ
終了条件がtrueにならないループの事
-
for命令
for(初期化式; 継続条件式; 増減式){
ループ内で実行する処理
}
-
foreach命令
指定された配列の要素を取り出して、戦闘から順番に処理する
foreach(配列 as 値変数){
ループ内で実行する処理
}
foreach(連想配列 as キー変数 => 値変数){
ループ内で実行する処理
}
-
continue命令
現在の周回だけをスキップし、ループそのものは継続して実行する
-
関数の呼び出し
戻り値=関数名(引数,・・・)
-
文字列の長さを取得する関数
mb_strlen関数
-
文字列を大文字⇔小文字で変換する
mb_convert_case関数
-
部分文字列を取得位置から取得する
mb_substr関数
-
部分文字列を検索文字から取得する
mb_strstr関数
-
文字列に含まれる特定の文字列を別の文字列に置換する
str_replace関数
大文字と小文字を区別したくないときはstr_ireplace関数
文字列に含まれる文字を除去することにも使用できる
-
文字列を特定の区切り文字で分割する
explode関数
-
特定の文字が最初に現れた位置を検索する
mb_strpos関数
大文字と小文字を区別したくないときはmb_stripos関数
-
特定の文字が最後に現れた位置を検索する
mb_strrpos関数
大文字と小文字を区別したくないときはmb_strripos関数
-
部分文字列の登場回数をカウントする
mb_substr_count関数
-
文字列に指定した文字列が含まれるかの判定
str_contains関数
-
指定した文字列が文字列の先頭にあるかを判定する
str_starts_with関数
-
指定した文字列が文字列の末尾にあるかを判定する
str_ends_with関数
-
文字列の前後の空白を除去する
trim関数
-
文字列の前方の空白を除去する
ltrim関数
-
文字列の後方の空白を除去する
rtrim関数
-
文字列を整形する
printf関数
-
変換指定子(プレイスホルダー)とは
値をフォーマットして文字列として出力する際に使用する記号や文字列の形式指定子のこと
-
符号指定子
数値に付与する符号を指定する
-
パディング指定子
不足している桁を埋めるための文字
デフォは空白
0
0以外の時は頭に’を付ける 例)’*
-
アラインメント指定子
左寄せか右寄せ化を指定
デフォは右寄せ
ーを付与することで左寄せとなる
-
表示幅指定子
全体の表示桁を指定
-
精度指定子
小数点以下の桁数
頭に.を付ける
-
型指定子 %
パーセント文字
-
型指定子 b
引数を整数とみなし、2進数として表現
-
型指定子 c
引数を整数とみなし、ASCII値の文字として表現
-
型指定子 d
引数を整数とみなし、10進数として表現
-
型指定子 e,E
引数を指数表記として処理
-
型指定子 u
引数を整数とみなし、符号なし10進数として表現
-
型指定子 f
引数を浮動小数点として表現(ロケール考慮)
-
型指定子 F
引数を浮動小数点として表現
-
型指定子 o
引数を整数とみなし、8進数として表現
-
型指定子 s
引数を文字列としてみなして処理
-
型指定子 x
引数を整数とみなし、16進数(小文字)として表現
-
型指定子 X
引数を整数とみなし、16進数(大文字)として表現
-
ロケールとは
地域や言語、文化的な設定を定義するための情報のこと
-
文字列を変換する
mb_convert_kana関数
-
変換オプション r
英文字 全角→半角
-
変換オプション R
英文字 半角→全角
-
変換オプション n
数字 全角→半角
-
変換オプション N
数字 半角→全角
-
変換オプション a
英数字 全角→半角
-
変換オプション A
英数字 半角→全角
-
変換オプション s
スペース 全角→半角
-
変換オプション S
スペース 半角→全角
-
変換オプション k
カタカナ 全角→半角
-
変換オプション K
カタカナ 半角→全角
-
変換オプション h
ひらがな 全角→半角
-
変換オプション H
ひらがな 半角→全角
-
変換オプション c
カタカナ 全角 → ひらがな 全角
-
変換オプション C
カタカナ 半角 → ひらがな 半角
-
変換オプション V
濁点付きの文字を1文字に変換
-
文字エンコーディングを変換する
mb_convert_encoding関数
-
指定のファイルに文字列を出力する
file_put_contents関数
-
配列の要素数を取得する
count関数
-
要素の登場回数をカウントする
array_count_values関数
-
配列の内容を連結する
array_merge関数
-
配列の各要素を結合して文字列を返す
implode関数
-
配列の末尾に要素を追加
array_push関数
-
配列の末尾から要素を除去
array_pop関数
-
配列の先頭から要素を除去
array_shift関数
-
配列の先頭に要素を追加
array_unshift関数
-
スタック
後入れ先出し、先入れ後出しの構造
array_pushとarray_popで表現
-
キュー
先入れ先だしの構造
array_pushとarray_shiftで表現
-
配列の任意の場所に要素を追加したり、既存の要素を置換削除する
array_splice関数
-
特定範囲の要素だけ取り出す
array_slice関数
-
配列から特定の値を検索して取り出す
array_search関数
-
配列に特定の要素が存在するかを確認する
in_array関数
-
通常配列の値を昇順で並び替える
sort関数
-
通常配列の値を降順で並び替える
resort関数
-
連想配列の値を昇順で並び替える
asort関数
-
連想配列の値を降順で並び替える
arsort関数
-
連想配列のキーを昇順で並び替える
ksort関数
-
連想配列のキーを降順で並び替える
krsort関数
-
ソート方法 SORT_REGULAR
型を変更せずにソート
-
ソート方法 SORT_NUMERIC
数値としてソート
-
ソート方法 SORT_STRING
文字列としてソート
-
ソート方法 SORT_LOCALE_STRING
文字列としてソート(ロケール考慮する)
-
ソート方法 SORT_NATURAL
文字列としてソート(自然順)
-
ソート方法 SORT_FLAG_CASE
文字列ソートで大文字小文字を区別しない
-
自分のルールで配列を並び替える関数
usort関数
-
配列の内容を取得、処理する
array_walk関数
処理方法のコールバック関数を引数として渡せる
-
配列内の要素を加工する
array_map関数
配列を加工するための関数を引数として渡す
-
配列の内容を特定の条件で絞り込む
array_filter関数
条件式のある関数を引数として渡す
関数には配列の値が渡される
キーを渡したい場合はオプション設定が必要
-
配列内の要素を順に処理して1つにまとめる
array_reduce関数
要素を演算するコールバック関数を引数として渡す
コールバック関数の引数は、演算結果を格納する変数と個々の要素を受け取るための変数を用意する
-
正規表現
あいまいな文字列パターンを表現する記法
-
正規表現で文字列を検索する
preg_match関数
-
サブマッチパターン
正規表現パターンの中で、()で囲まれた部分的なパターン
-
サブマッチ文字列
サブマッチパターンにマッチした文字列
-
全てのマッチ文字列を取得する
preg_match_all関数
-
正規表現で文字列を置換する
preg_replace関数
-
正規表現で置き換えたコールバック関数で処理をする
preg_replace_callback関数
-
正規表現で文字列を分割する
preg_split関数
-
正規表現パターンの修飾子 i
大文字小文字の区別を無視
-
正規表現パターンの修飾子 m
複数行検索に対応(マルチラインモード)
-
正規表現パターンの修飾子 s
単一行検索(シングルモード)
-
正規表現パターンの修飾子 x
コメントの有効化
-
ファイルを開く関数
fopen関数
-
ファイルを閉じる関数
fclose関数
-
ファイルハンドル
ファイルを操作するための情報
-
オープンモード r
読み込み専用
-
オープンモード r+
読み書き可能(ファイルが存在する場合はエラー)
-
オープンモード w
書き込み専用(既存ファイルの内容をクリア、存在しない場合は新規作成)
-
オープンモード w+
読み書き可能(既存ファイルの内容をクリア、存在しない場合は新規作成)
-
オープンモード a
書き込み専用(追記専用(末尾にしか書き込めない)、存在しない場合は新規作成)
-
オープンモード a+
読み書き可能(追記専用(末尾にしか書き込めない)、存在しない場合は新規作成)
-
オープンモード x
書き込み専用(ファイルが存在する場合はエラー)
-
オープンモード x+
読み書き可能(ファイルが存在する場合はエラー)
-
オープンモード c
書き込み専用(存在しない場合は新規作成)
-
オープンモード c+
読み書き可能(存在しない場合は新規作成)
-
オープンモード b
バイナリモード
-
オープンモード t
テキストモード
-
指定されたメッセージを出力して、スクリプトを強制終了するための関数
die関数
-
開かれたファイルに書き込みを行う
fwrite関数
-
ファイルのロックを行う関数
flock関数
-
CSVを読み込む
fgetcsv関数
-
絶対値を求める関数
abs関数
-
文字列として表現された数値を任意の基数間で変換する関数
base_convert関数
-
引数で指定した数値を切り上げて、最も近い整数を返す関数
ceil関数
-
引数で指定した数値を切り捨てて、最も近い整数を返す関数
floor関数
-
2つの整数を割り算し、その商の整数部分を返す関数
intdiv関数
-
浮動小数点数の割り算の剰余(余り)を返す関数
fmod関数
-
引数の中で最大の値を返す関数
max関数
-
引数の中で最小の値を返す関数
min関数
-
指定した範囲内でランダムな整数を返す関数
rand関数
-
指定した数の累乗を計算して返す関数
pow関数
-
指定した小数点の精度で四捨五入した値を返す関数
round関数
-
指定した数値の平方根を返す関数
sqrt関数
-
円周率πの値を返す関数
pi関数
-
指定した角度の余弦(cos)を返す関数
cos関数
-
指定した角度の正弦(sin)を返す関数
sin関数
-
指定した角度の正接(tan)を返す関数
tan関数
-
角度を度からラジアンに変換する関数
deg2rad関数
-
角度をラジアンから度に変換する関数
red2deg関数
-
自然対数の底eのべき乗を計算して返す関数
exp関数
-
引数の常用対数(底10の対数)を返す関数
log10関数
-
指定した底での対数を計算して返す関数(省略時は自然対数)
log関数
-
変数を破棄する関数
unset関数
-
function命令
ユーザー定義関数を定義できる
function 関数名(仮引数,…){
実行する処理
return 戻り値;
}
-
引数
メソッドの中で参照可能な変数
-
呼び出しもとから渡される値の事
実引数
-
受け取り側の変数の事
仮引数
-
戻り値
関数が処理した結果を表す
-
return命令
戻り値を返す命令
-
型宣言
明示的に肩を指定することができる
-
型宣言で利用できる型 bool
真偽値
-
型宣言で利用できる型 float
浮動小数点数
-
型宣言で利用できる型 int
整数
-
型宣言で利用できる型 string
文字列
-
型宣言で利用できる型 array
配列
-
型宣言で利用できる型 iterable
配列・traversal型
-
型宣言で利用できる型 callable
コールバック関数
-
型宣言で利用できる型 object
任意のオブジェクト
-
型宣言で利用できる型 クラス・インターフェイス名
指定されたクラス・インターフェイス
-
型宣言で利用できる型 mixed
任意の型
-
型宣言で利用できる型 void
何も返さない
-
型宣言で利用できる型 self
現在のクラス
-
型宣言で利用できる型 static
最初に呼び出したクラス
-
null許容型
?を型名の先頭に付与することで、nullを許容できる
-
require命令
外部ファイルを一度だけインクルードする
ファイルが見つからない場合処理を中断する
-
include命令
外部ファイルを一度だけインクルードする
ファイルが見つからない場合でも処理は継続する
-
require_once・include_once命令
外部ファイルをインクルードする
循環参照される
-
グローバルスコープ
スクリプト全体から参照可能な変数の有効範囲
-
ローカルスコープ
定義された関数の中でのみ参照できる変数の有効範囲
-
関数内でグローバル変数を利用するには
global命令で「グローバル変数のようにふるまうローカル変数」を定義する
-
静的変数
static命令で定義する
関数の初回呼び出し時にのみ初期化され、関数の処理が終了しても維持される
-
可変関数
$変数名()の形式で呼び出せる関数の事
-
無名関数
使い捨ての関数
function(仮引数,……){
return 戻り値;
}
変数に代入することができる
-
use命令
親スコープから変数を引き継ぐこともできる
-
アロー関数
fn(仮引数,…) => 任意の式
-
ジェネレーター
yield命令を利用する関数
-