【PHP】 ビルトイン関数  基礎

ビルトイン関数とは
 
あらかじめPHPに組み込まれている関数のこと。
 
 
例えばこんなもの
・文字列を渡すと、文字列の長さを返す
strlen ( 'apple' )  →5
 
・大きな数値を渡すと、3桁ごとにカンマを入れる
number_format ( 12345678 )  →1,235,678
 
・配列を渡すと、実行するたびシャッフルする
shuffle ( [1,2,3,4] )  →[2,4,3,1]
 
・配列を渡すと、重複した要素を取り除く
array_unique ( [2,2,5,7,7, )  →[2,5,7]
 
 
sprintf ( ) , printf ( )
sprintf:フォーマットされた文字列を返す(出力するにはechoが必要)
printf:フォーマットされた文字列を(返すだけでなく)出力する
<?php
$num = 5;
$location = 'table';
$format = 'There are %d apples in the %s';
echo sprintf($format, $num, $location);
//printf($format, $num, $location); //同じ内容が出力される
?>  → There are 5 apples in the table と出力
値を埋め込む箇所にデータ型に応じた記号を書く。
文字列:%s  整数:%d  浮動小数点数:%f
 
 
strlen ( ) , trim ( ) , strpos ( ) , str_replace ( )
 
<?php
$input = ' abc_napi ';
$input = trim($input);  
  → $inputの前後の空白や改行を除去
 
echo strlen($input);  → 8と出力 
  → $inputの文字数を出力
 
echo strpos($input, '_');  → 3と出力
  →$inputの中から'_'を探し、何文字目にあるかを出力
※位置は0から始まることに注意
 
$input = str_replace('_', '-', $input);  
  → '_'を'-'に変える
echo $input;  → abc-napiと出力
 
mb_strlen( ) , mb_strops( )
日本語を扱う際は、以下のように別の関数を使う。
strlen ( ) → mb_strlen( )
strpos ( ) → mb_strops( )
 
 
情報の桁数が決まっている固定長データ
substr( )
<?php
$input = '20210223food-A 12000';
$date = substr($input, 0, 8); //$inputの0文字目から8桁分
$food = substr($input, 8, 6); //$inputの8文字目から6桁分
$amount = substr($input, 14);
//最後までの場合は、何桁分という引数を省略できる
echo $date;  → 20210223と出力
echo $food;  → food-Aと出力
echo number_format($amount);  → 12,000と出力
 
substr_replace( )
<?php
$input = '20210223food-A 12000';
$input = substr_replace($input, 'food-B', 8, 6);  
  → $inputの8文字目から6桁分をfood-Bに置き換える
 
 
特定のパターンの文字列を検索・置き換え
preg_match( ), preg_match_all( )
<?php
 
$tel = 'Call us at 06-1111-2222 or 06-3333-4444';
$type = '/\d{2}-\d{4}-\d{4}/';
 
preg_match($type, $tel, $matches);  → 最初に見つかった結果を出力
preg_match_all($type, $tel, $matches);  → 見つかった全ての結果を出力
// (検索したいパターン, 検索したい文字列, 検索結果を格納する変数)を引数とする 
 
preg_replace( )
<?php
$tel = 'Call us at 06-1111-2222 or 06-3333-4444';
$type = '/\d{2}-\d{4}-\d{4}/';
 
$tel = preg_replace($type, '**-****-****', $tel);
// (パターン, 置き換え後の文字列, 検索したい文字列)
 
echo $tel;  → Call us at **-****-**** or **-****-****と出力
 
 
配列を連結する
implode( )
<?php
$today = [2021, 2, 24];
 
echo "$today[0]-$today[1]-$today[2]";
echo implode('-', $today);
// (区切り文字, 配列名)
 
→ どちらも2021-2-24と出力
 
 
文字列を配列の要素にする
explode( )
<?php
$time = '21:40:15';
print_r (explode(':', $time));
// (区切り文字, 配列名)
 
→ Array ( [0] => 21 [1] => 40 [2] => 15 )と出力
 
 
数学系の関数
<?php
 
$n = 1.2435;
 
echo ceil($n);  →2 //小数点以下を切り上げ
echo floor($n); →1 //小数点以下を切り下げ
echo round($n); →1 //小数点以下を四捨五入
echo round($n, 2); →1.24 //小数点以下が2桁になるよう四捨五入
 
<?php
echo mt_rand(1,9); //1以上6以下の乱数を生成
echo max(1, 5, 8); → 8と出力
echo min(1, 5, 8); → 1と出力