【PHP技術者認定試験問題】ユーザ定義関数、標準クラスライブラリ

ユーザ定義関数

・ユーザ定義関数で引数、戻り値を明示的に指定すること
・記述方法
・型名 6

宣言型

function ファンクション名 (引数の型 引数, 引数の型 引数): 戻り値の型 {
  …
}
bool真偽値
float浮動小数点数
int整数
string文字列
callableコールバック関数
void何も返さない(戻り値のみ指定可)
指定化
下記のprocessNumberは$num、…を引数$funcで処理し、結果を配列として返す関数です。

function processNumber( 1 $func, float …$args): array {
foreach ( 2 as $arg) {
$result[] = 3;
}
return $result;
}
4 $x, $y 5 = processNumber(
fn($num) 6
5, 15);
function processNumber( callable $func, float ...$args): array {
  foreach ( $args as $arg) {
    $result[] = $func($arg);
  }
  return $result;
}
[ $x, $y ] = processNumber(
  fn($num) => $num**2
  5, 15);

標準クラスライブラリ

日付文字列「2023年8月3日」を、DateTimeクラスを使ってかいせきし、「YYYY/MM/DD(曜日)」の形式で出力してください
$dt = 1::2(‘Y年m月d日’, ‘2023年8月3日’);
print $dt->3(‘Y/m/d (D)’);
$dt = DateTime::createFromFormat('Y年m月d日', '2023年8月3日');
print $dt->format('Y/m/d (D)');
format文字
j、d、D、n、m、M、y、Y、g、G、i、s
j日付(1~31)
d日付(01~31)
D曜日(Mon~Sun)
n月(1~12)
m月(01~12)
M月(Jan~Dec)
y年(2桁)
Y年(4桁)
g時(1~12)
G時(0~23)
i分(0~59)
s秒(0~59)
インスタンスメソッドの呼び出し

->アロー演算子

日付/時刻を指定のフォーマットで整形するメソッド

format

$dt = 1 2(‘2022/8/4 10:26:30’);
print $dt->3(‘Y年m月d日 H時i分’); // 結果:2022年08月04日 10時26分
$dt->4(1 5(‘P1YT10H’));
print $dt->3(‘Y年m月d日 H時i分’); // 結果:2023年08月04日 20時26分
$dt = new DateTime('2022/8/4 10:26:30');
print $dt->format('Y年m月d日 H時i分');  // 結果:2022年08月04日 10時26分
$dt->add(new DateInterval('P1YT10H')); 
print $dt->format('Y年m月d日 H時i分');  // 結果:2023年08月04日 20時26分
$dt1 = new 1(‘2020/8/20 10:38:32’);
$dt2 = new 1(‘2023/12/10’);
$interval = $dt1->2($dt2, true);
$dt1 = new DateTime('2020/8/20 10:38:32');
$dt2 = new DateTime('2023/12/10');
$interval = $dt->diff($dt2, true);
・指定されたフォルダーにディレクトリ配下のファイル情報にアクセスするためのクラス
・上記クラスの主なメソッド
 ・ファイルがフォルダーであるか
 ・ファイルが通常のファイルであるか
new DirectoryIterator(string $path)
  • is_dir($path)
  • is_file($path)