つくる
さがす
ログイン
登録
ゲスト
ログインしていません
ログイン
登録
メニュー
通知
検索
単語帳をつくる
マニュアル
フィードバック
お問い合わせ
開発者を支援
サービス稼働状況
Ankilotについて
ログイン
通知はありません
ホーム
PHP
PHP
暗記
テスト
出力
違反報告
表示設定
お気に入り
フルスクリーン表示
ひらい
2024年10月22日
カード
452
いいね
0
暗記
テスト
出力
広告
単語カード
設定
全面表示
クライアント
ほかのコンピューターに対して何らかの依頼(要求)を行い、その結果を受け取るコンピューターのこと
サーバー
ほかのコンピューターに対して情報やサービスを提供するコンピューターのこと
データーベースサーバー
大量のデータを管理するサーバー
メールサーバー
電子メールを受け渡しするサーバー
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命令を利用する関数
広告
コメント
コメントを送信
単語帳を共有
Twitter
LINE
はてな
アプリ
QRコード
URLコピー
キャンセル
表示設定
文字の色
デフォルト
白
シルバー
グレー
黒
赤
オレンジ
黄
黄緑
緑
水
青
紫
ピンク
文字の太さ
デフォルト
太字
文字の大きさ
デフォルトの文字サイズに加算・減算します。
px
チェック済を非表示
暗記でチェックをつけたカードを非表示にします。
カードの一部を隠す
カードの一部を指定して隠します。
表の文字
表のヒント
表の画像
裏の文字
裏のヒント
裏の画像
設定を適用する
つくる
さがす
ホーム
リスト
メニュー