php

PHP入門 ジェネレーター

ジェネレーター(Generator)の見た目は、普通の関数です。しかし、普通の関数がreturn命令で値を返したらそれで終わりであるのに対して、ジェネレーターはyieldという命令を利用することで、つど、その時々の値を返すせる点が異なります。<?phpfunction myGen(){yield 'あいうえお';yield 'かきくけこ';yield 'さしすせそ';}foreach(myGen(...
php

PHP入門 関数呼び出しと戻り値

複数の戻り値、再帰関数、コールバック関数、名関数、アロー関数について解説しています。複数の戻り値関数から複数の戻り値を返したい場合、配列やオブジェクトとして値を1つにまとめた上でreturn命令で戻り値を返します。例:最大値と最小値を求めるreturns.php<?phpfunction max_min(float ...$args): array{ //最大値/最小値の順で配列を生成 retur...
php

PHP入門 引数のさまざまな記法

ユーザー定義関数の引数の既定値、引数の参照渡し、可変長引数の関数、アンバック等のテクニックについて紹介しています。引数の既定値代入演算子「=」を利用することで、仮引数に既定値を設定できます。getTriangleArea関数の引数$base、$heightにそれぞれ既定値5、1を指定する例です。<?phpfunction getTriangleArea(float $base = 5, float...
php

PHP入門 変数の有効範囲(スコープ)

ユーザー定義関数の有効範囲(スコープ)について解説しています。スコープスコープとは、スクリプトの中での変数の有効範囲のことです。PHPのスコープは、スクリプト全体から参照できるグローバルスコープと、定義された関数の中でのみ参照できるローカルスコープとに分類できます。グローバルスコープとローカルスコープグローバル変数とローカル変数グローバルスコープを持つ変数をグローバル変数、ローカルスコープを持つ変...
php

PHP入門 ユーザー定義関数の基本

ユーザー定義関数は、function命令で定義できます。以下の構文はユーザー定義関数の基本的な構文です。構文:function命令function 関数名(仮引数, ・・・・・){ //任意の処理 return 戻り値;}ユーザー定義関数は、「関数名(引数名,…)」のように呼び出せます。例<?phpfunction getTriangleArea($base, $height){ return $...
php

PHP入門 数学関数 変数を破棄する(unset関数)

unset関数を利用することで、変数を破棄できます。構文:abs関数void unset(mixed $var, mixed …$vars)$var、$vars破棄対象の変数例<?php$str; //➊var_dump($str);//結果:NULL$str = '代入'; //➋var_dump($str);//結果:string(6)"代入"unset($str); //➌var_dump(...
php

PHP入門 数学関数 変数のデータ型を判定する(is_xxxxx関数)

変数/リテラルのデータ型を判定し、その結果をture/falseで判定する方法を解説しています。主なis_xxxxx関数関数判定する型is_array配列型is_bool論理型is_callable関数is_countablecount関数でカウント可能な型(配列、またはCountable型)is_double/is_float浮動小数点型is_int/is_integer/is_long整数型i...
php

PHP入門 数学関数 任意の精度で数値の演算を行う(BC Math関数)

任意の精度で数値の演算を行う方法を解説しています。構文:abs関数string bcadd(string $left_operand, string $right_operand )int bccomp(string $left_operand, string $right_operand )string bcdiv(string $left_operand, string $right_oper...
php

PHP入門 数学関数 最大値/最小値(max/min関数)

最大値/最小値を求める方法を解説しています。構文:max/min関数mixed max(array $values)mixed max(array $value1, mixed $value2 )mixed min(array $values)mixed min(array $value1, mixed $value2 )$values最大値、最小値最大値を求めるにはmax関数を、最小値を求めるに...
php

PHP入門 数学関数 乱数の最大値を取得する(getrandmax/mt_getrandmax関数)

乱数の最大値を取得する方法を解説しています。構文:getrandmax/mt_getrandmax関数int getrandmax(void)int mt_getrandmax(void)乱数の最大値を取得するには、「getrandmax」関数や「mt_getrandmax」関数を使います。getrandmax関数は、rand関数で得られる乱数の最大値を返します。mt_getrandmax関数は、...
php

PHP入門 数学関数 乱数を生成する(rand/mt_rand/lcg_value関数)

乱数を生成する方法を解説しています。構文:abs関数int rand (void)int rand(int $min, int $max)int mt_rand(void)int mt_rand(int $min, int $max)float lcg_value(void)$min最小値$max最大値乱数を生成するには「rand」関数や「mt_rand」関数、または「lcg_value」関数を使...
php

PHP入門 数学関数 割り算の余りを求める(fmod関数)

割り算の余りを求める方法を解説しています。構文:fmod関数float fmod(float $x, float $y)$x被除数$y除数割り算の余りを求めるには、「fmod」関数を使います。この関数は、第1引数に被除数を、第2引数に除数を指定します。例:<?php//15 / 6の余りを計算するecho fmod(15,6),"<br>";実行結果
php

PHP入門 数学関数 対数を計算する(log/log10関数)

対数を計算する方法を解説しています。構文:log/log10関数float log(float $arg )float log10(float $arg)$arg対象の数値$base底$baseの対数対数を計算するには、log関数やlog10関数を使います。log関数は、自然対数を返します。また、オプションの第2引数を指定した場合、それを底とする対数を返します。「log10」関数は、「10」を底と...
php

PHP入門 数学関数 eの累乗を計算する(exp関数)

eの累乗を計算する方法を解説しています。構文:exp関数float exp(float $arg)$arg対象の数値e(自然対数の底)の累乗を計算するには、「exp」関数を使います。この関数は、eを引数に指定した値で乗じた値を返します。eの値は、およそ「2.718282」です。例<?php//eの12乗を計算するecho exp(12),"<br>";
php

PHP入門 数学関数 浮動小数点を丸める(round関数)

浮動小数点を丸める方法を解説しています。構文:round関数float round(float $val ])$val対象の浮動小数点$precision小数点以下の桁数$modeモード浮動小数点を丸めるには、「round」関数を使います。この関数は、小数点以下を丸めた値を返します。オプションの第2引数に桁数を指定した場合、その桁数に丸めた値を返します。桁数の負の値、または「0」(既定値)にするこ...
php

PHP入門 数学関数 端数の切り上げ/切り捨てを行う(ceil/floor関数)

端数を切り上げ/切り捨てる方法を解説しています。構文:ceil/floor関数float ceil(float $value)float floor(float $value)端数を切り上げるには「ceil」関数を、切り捨てるには「floor」関数を使います。「ceil」関数は、引数に渡された浮動小数点(float)の小数点以下を切り上げた整数値を返します。「floor」関数は、引数に渡された浮動...
php

PHP入門 数学関数 数値の基数を変換する(base_convert、decbin、decoct、dechex、bindec、octdec、hexdec関数)

数値の基数を変換する方法を解説しています。構文:base_convert/decbin/decoct/dechex/bindec/octdec/hexdec関数string base_convert(string $number, int $frombase, int $tobase)string decbin(int $number)string decoct(int $number)strin...
php

PHP入門 数学関数 べき乗や平方根を計算する(pow/sqrt関数)

べき乗や平方根を計算する方法を解説しています。構文:pow/sqrt関数number pow(number $base, number $exp)float sqrt(float $arg)べき乗を計算するには、「pow」関数を、平方根を計算するには「sqrt」関数を使います。「pow」関数は、第1引数に指定した数値(基数)を、第2引数に指定した数値(指数)で乗じた値を返します。「sqrt」関数は...
php

PHP入門 数学関数 直角三角形の斜辺の長さを計算する(hypot関数)

直角三角形の斜辺の長さを計算する方法を解説しています。構文:hypot関数float hypot(float $x, float $y)直角三角形の斜辺の長さを計算するには、「hypot」関数を使います。この関数は、直角を挟む2辺の長さが「x」、及び、「y」である直角三角形の斜辺の長さを返します。この関数は「sqrt(x*x+y*y)」の計算式と等価です。例:<?php//x=5、y=10の直角三...
php

PHP入門 数学関数 度単位とラジアン単位を相互に変換する(deg2rad/rad2deg関数)

度単位とラジアン単位を相互に変換する方法を解説しています。構文:deg2rad/rad2deg関数float deg2rad(float $number)float rad2deg(float $number)$number対象の数値度単位とラジアン単位を相互に変換するには、「deg2rad関数」と「rad2deg関数」を使います。「deg2rad」関数は度単位をラジアン単位に、「rad2deg」...
php

PHP入門 数学関数 三角関数を取得(sin/cos/tan関数)

三角関数を取得する方法を解説しています。構文:sin/cos/tan関数float sin(float $arg)float cos(float $arg)float tan(float $arg)float asin(float $arg)float acos(float $arg)float atan(float $arg)$arg対象の数値三角関数を取得するには、「Math」関数の三角関数を...
php

PHP入門 数学関数 円周率の値を取得する(pi関数)

円周率の値を取得する方法を解説しています。構文:pi関数float pi(void)円周率の値を取得するには、「pi」関数を使います。この関数は、円周率の値を「float」型の小数点で返します。小数点以下の桁数は、「php.ini」の「precision」ディレクティブに依存します。なお、定数「M_PI」を使用することでも、「pi」関数と同じ結果を取得することができます。例<?php//円周率を取...
php

PHP入門 数学関数 数値の絶対値を取得する(abs関数)

数値の絶対値を取得する方法を解説します。構文:abs関数number abs(mixed $number)$number対象の数値数値の絶対値を取得するには、「abs」関数を使います。この関数は、引数に渡された数値の絶対値を返します。引数の型が「float」であった場合、返り値の型も「float」となり、それ以外の場合は返り値の型は「int」となります。例:<?phpecho abs(-4.2),...
php

PHP入門 ファイルシステム関数 タブ区切りテキストの読み込み(fgets/file関数)

fgets関数fgets関数は、指定されたファイルから1行分のデータを読み込みます。fgetcsv関数と異なるのは、読み込んだデータの分割処理を行わないという点だけです。この場合は、読み込んだ行データをexplode関数で分割処理する必要があります。タブ区切りテキストを読み込む場合にはfgetcsv巻子うのほうが便利ですが、特定の宇切り文字を持たないテキストを順に読み込む場合にはfgets関数がよ...
php

PHP入門 ファイルシステム関数 タブ区切りテキストの読み込み(fgetcsv関数)

fgetcsv関数は、タブ区切りテキストやカンマ区切りテキストなど、定型フォーマットのテキストを読み込む場合に便利な関数です。fgetcsv関数は、特定の区切り文字を持ったテキストに汎用的に対応する関数です。構文:fgetcsv関数fgetcsv(resource $stream [, int $length [, string $separator = "," ]]]):array$stream...
php

PHP入門 ファイルシステム関数 ファイルのロック(flock関数)

ファイルへの同時書き込みを制御するflock関数について解説。構文:flock関数flock(resource $stream, int $operation):bool$streamファイルハンドル$operationロックモードあるユーザーがファイルを開いて書き込んでいる間に、別のユーザーが元のファイルを開いて、別の書き込みを行った場合、処理内容によってはファイルが破壊されてしまいます。共有の...
php

PHP入門 ファイルシステム関数 ファイルへの書き込み(fwrite関数)

開かれたファイル(ハンドル)に対して書き込みを行うのは、fwrite関数です。構文:fwrite関数fwrite(resource $handle, string $string ):int$handle書き込み対象のファイルハンドル$string書き込む文字列$length書き込む文字列の長さ(バイト単位)fwrite関数には、エイリアス(別名)としてfputs関数もあります。//書き込み内容を...
php

PHP入門 ファイルシステム関数 fopen関数でのエラー処理(@、or、die関数)

die関数は指定されたメッセージを出力してスクリプトを強制終了させるための関数です。「@fopen ・・・or die ・・・」とは「ファイルを開きなさい、さもなければ(or)終了しない」という意味になります。構文:die関数die():void$status終了時に表示する文字列fopen関数は、たとえば「指定されたファイルが存在しない」「ファイルに書き込む権限がない」などの理由でファイルを開け...
php

PHP入門 ファイルシステム関数 ファイルを開く(fopen/fclose関数)

スクリプトからテキストファイルに書き込みを行う場合、まずテキストファイルを開く必要があります。構文:fopen関数fopen(string $filename, string $mode):resource$filenameファイルのパス$modeオープンモード$use_include_pathuse_include_pathパラメーターを利用するかfopen関数は、ファイルのオープンに成功すると...
php

PHP入門 正規表現関数 正規表演による検索

よく利用する正規表現の「最長一致と最短一致」、「名前付きキャプチャグループ」、「グループの後方参照」、「後読みと先読み」、「ひらがな/カタカナ/漢字などを取得」について解説しています。最長一致と最短一致最長一致とは、正規表現で「*」「+」などの量指定子を利用した場合に、できるだけ長い文字列を一致させないさいというルールです。<?php$tags = '<p><strong>PHP</strong>...
php

PHP入門 正規表現関数 正規表現パターンの修飾子

修飾子とは、正規表現でマッチングや置換を行う際に利用する動作オプションです。修飾子は「/パターン/修飾子」の形式で、正規表現の末尾に指定できます。正規表現パターンの主な修飾子修飾子概要i大文字/小文字の区別を無視m複数行検索に対応(改行の前後も文字列の末尾/先頭として認識)s「.」が行末文字を含む任意の文字にマッチ(単一行モード)xコメントの有効化u正規表現パターンをUTF-8文字列として扱う修飾...
php

PHP入門 正規表現関数 正規表現で文字列を分割する(preg_split関数)

正規表現による分割処理を行うには、preg_split関数を利用します。構文:preg_split関数preg_match(string $pattern, string $subject ):array|false$pattern正規表現パターン(空パターン「//」の場合、1文字単位に分割)$subject分割対象の文字列$limit分割の上限回数(規定では無制限)$flags動作オプションpr...
php

PHP入門 正規表現関数 正規表現で置き換えたコールバック関数で処理する(preg_replace_callback関数)

preg_replace_callback関数を利用することで、正規表現パターンにマッチした結果をコールバック関数で処理した上で置き換えることも可能です。構文:preg_match関数preg_replace_callback(string|array $pattern, callable $callback, string|array $subject ]]):string|array|null...
php

PHP入門 正規表現関数 正規表現で文字列を置換する(preg_replace関数)

正規表現による置換処理を行うには、preg_replace関数を使います。構文:preg_replace関数preg_replace(string|array $pattern, string|array $replacement, string|array $subject]):string|array|null$pattern正規表現パターン$replacement置き換え後の文字列$subj...
php

PHP入門 正規表現関数 すべてのマッチ文字列を取得する(preg_match_all関数)

すべてのマッチ文字列を取得する場合は、preg_match_all関数を利用します。preg_match関数は一度の実行で1つの実行結果しか返しません。対象の文字列に複数のマッチ文字列があったも、結果には最初の1つしか出力しないので、すべてのマッチ文字列を取得するには、preg_match_all関数を利用します。構文:preg_match_all関数preg_match_all(string $...
php

PHP入門 正規表現関数 正規表現で文字列を検索する(preg_match関数)

正規表現で文字列を検索するには、preg_match関数を使用します。構文:preg_match関数preg_match(string $pattern, string $subject ]]):int|false$pattern正規表現パターン$subject検索対象の文字列&$matches検索結果を格納する配列$flags動作フラグ$offset検索の開始位置(既定では文字列の先頭)preg...
php

PHP入門 正規表現の基本

正規表現の基本について解説しています。正規表現によって表されたある文字列パターンのことを正規表現パターンといいます。また、与えられた正規表現パターンが、ある文字列の中に含まれる場合、文字列が正規表現パターンにマッチすると言います。PHPで利用できる主な正規表現パターン分類パターンマッチする文字列基本XYZという文字列X、Y、Zいずれかの1文字X、Y、Z以外のいずれかの1文字XからZの範囲の中の1文...
php

PHP入門 配列関数 配列内の要素を順に処理して1つにまとめる(array_reduce関数)

array_reduce関数を利用します。構文:array_reduce関数array_reduce(array $array, callable $callback ):mixed$array処理対処の配列$callback要素を演算する処理$initial初期化コールバック関数(引数$callback)の条件は、以下の通りです。演算結果を格納するための変数(ここでは$result)個々の要素を...
php

PHP入門 配列関数 配列の内容を特定の条件で絞り込む(array_filter関数)

array_filter関数を利用することで、配列の内容をコールバック関数で判定し、その中でtrueと判定された要素だけを取得できます。構文:array_filter関数array_filter(array $array]):array$array元の配列$callback要素のtrue/falseを判定する処理$mode動作オプションコールバック関数(引数$callback)の条件は、以下の通り...
php

PHP入門 配列関数 配列内の要素を加工する(array_map関数)

array_map関数を利用することで、配列から順に要素を取得&加工し、新たな配列を生成できます。構文:array_map関数array_map(callable $callback, array $array, array ・・・$arrays):array$callback配列を加工するための関数$array/$arrays加工対象の配列コールバック関数(引数$callback)の条件は、以下...
php

PHP入門 配列関数 配列の内容を順に処理する(array_walk関数)

array_walk関数を利用すれば、配列から順に要素を取得&処理できます。構文:array_walk関数array_walk(array &$array, callable $callback ):bool&$array処理対象の配列$callback処理方法を表した関数$userdata引数$callbackに渡す任意の値例foreach命令にも似ていますが、引数$userdataでコールバッ...
php

PHP入門 配列関数 自作のルールで配列を並べ替える(usort関数)

usrot関数を利用することで、標準的なソート関数では表現できない順序に基づいてソートできます。構文:usort関数usort(array &$array , callable $callback):bool&$arrayソート対象の配列$callbackソート規則を表した関数引数$callback(無名関数)は、以下のルールに則っていなければなりません。引数は比較する配列要素(2個)第1引数が第...
php

PHP入門 配列関数 配列の内容を並べ替える(sort関数)

配列の内容を並べ替える「sort」「rsort」「asort」「arsort」「ksort」「krsort」について解説しています、構文:ソート関数sort(array &$array ):bool&$arrayソート対象の配列$flags比較の方法ソート方法設定値概要SORT_REGULAR型を変更せずに値をソートSORT_NUMERIC数値としてソートSORT_STRING文字列としてソートS...
php

PHP入門 配列関数 配列に特定の要素存在するかを確認する(in_array関数)

特定の要素の有無を判定ならin_array関数を利用します。構文:in_array関数in_array(mixed $needle , array $haystack ):bool$needle検索すべき値$haystack検索対象の配列$strict「===」演算子で比較するか例if(!in_array('PHP', $data)){・・・}<?php$data = ;if(!in_array(...
php

PHP入門 文字列関数 配列の内容を検索する(array_search関数)

配列から特定の値を検索するには、array_search関数を利用します。構文:array_search関数array_search(mixed $needle, array $haystack ):int|string|false$needle検索すべき値$haystack検索対象の配列$strict「===」演算子で比較するか戻り値は、$needleが最初に見つかった要素のキーです。$need...
php

PHP入門 配列関数 配列から特定範囲の要素を取得する(array_slice関数)

配列から特定範囲の要素だけを取り出すには、array_slice関数を利用します。構文:array_slice関数array_slice(array $array, int $offset ]):array$array任意の配列$offset抽出開始位置$lenght取り出す要素数$preserve_keys取得した要素のキーを維持するかarray_slice関数は引数$arrayに直接影響を及ぼ...
php

PHP入門 配列関数 配列に複数要素を追加/置換/削除する(array_splice関数)

array_spliceは、配列の任意の場所に要素を追加したり、既存の要素を置換/削除するための関数です。構文:array_splice関数array_splice(array &$array , int $offset ]):array&$array操作対象の配列$offset要素の抽出開始位置$length取り出す要素数$replacement削除箇所に挿入する配列(単一の場合は文字列も可)a...
php

PHP入門 配列関数 配列の先頭/末尾に要素を追加/削除する(array_push/array_pop/array_shift/array_unshift関数)

配列に要素を追加/削除するための関数を解説します。構文:array_push/array_pop/array_shift/array_unshift関数array_push(array &$array, mixed …$values): int 末尾に追加array_pop(array &$array): mixed 末尾から除去array_shift(array &$array, mixed …...
php

PHP入門 配列関数 配列の各要素を結合する(implode関数)

implode関数は、配列の各要素を結合した結果文字列を返します。構文:implode関数implode(string $separator, array $array):string$separator連結に使用する文字列$array連結する配列例カンマ区切り、タブ区切りなどのテキストを生成する場合には、文字列連結演算子「.」を利用するよりコードがすっきりします。<?php$data = ;pr...
php

PHP入門 配列関数 配列の内容を連結する(array_merge関数)

array_merge関数は指定された配列要素を連結した結果を返します。構文:array_merge関数array_merge(array ・・・$arrays):array$arrays連結する配列「+」演算子と似ていますが、いくつか異なる点があります。連想配列のキーが重複している場合は、後者が優先されるインデックス(番号)が重複している場合には、新たなインデックス番号が振られるため、上書きされ...