---
title: KurocoのSmartyで利用可能なPHP関数
description: カスタム処理やバッチ処理にてSmartyプラグイン利用できます。変数の修飾子として利用可能なPHP関数をまとめます。
---

カスタム処理やバッチ処理にてSmartyプラグイン利用できます。
変数の修飾子として利用可能なPHP関数をまとめます。

## 利用可能なPHP関数
### if ステートメント

Kuroco のSmarty利用箇所において、`{if}` ステートメントで使用できる PHP 関数は以下の通りです。

PHP関数名 | 概要
--- | ---
is_null | 変数が null かどうか調べます
count | 配列または Countable オブジェクトに含まれるすべての要素の数を数えます
is_array | 変数が配列かどうかを検査します
in_array | 配列に値があるかチェックします
isset | 変数が宣言されていること、そして null とは異なることを検査します
is_object | 変数がオブジェクトかどうかを検査します

**記載例**  

```smarty
{if is_null($hoge)}
    $hogeはnullです。
{/if}
```

### 修飾子

Kuroco のSmarty利用箇所において、変数の修飾子として使用できる PHP 関数は以下の通りです。

PHP関数名 | 概要
--- | ---
array_column | 入力配列から単一のカラムの値を返します
array_key_exists | 指定したキーまたは添字が配列にあるかどうかを調べます
array_keys | 配列のキーすべて、あるいはその一部を返します
array_merge | ひとつまたは複数の配列をマージします
array_pop | 配列の末尾から要素を取り除きます
array_push | 一つ以上の要素を配列の最後に追加します
array_reverse | 要素を逆順にした配列を返します
array_shift | 配列の先頭から要素を一つ取り出します
array_slice | 配列の一部を展開します
array_unique | 配列から重複した値を削除します
array_values | 配列の全ての値を返します
arsort | 連想キーと要素との関係を維持しつつ配列を降順にソートします
asort | 連想キーと要素との関係を維持しつつ配列を昇順にソートします
base64_decode | MIME base64 方式によりエンコードされたデータをデコードします
base64_encode | MIME base64 方式でデータをエンコードします
explode | 文字列を文字列により分割します
filter_var | 指定したフィルタでデータをフィルタリングします
floor | 端数の切り捨て
html_entity_decode | HTML エンティティを対応する文字に変換します
htmlspecialchars_decode | 特殊な HTML エンティティを文字に戻します
http_build_query | URL エンコードされたクエリ文字列を生成します
implode | 配列要素を文字列により連結します
intval | 変数の整数としての値を取得します
is_array | 変数が配列かどうかを検査します
is_numeric | 変数が数字または数値形式の文字列であるかを調べます
json_decode | JSON 文字列をデコードします
json_encode | 値を JSON 形式にして返します
key | 配列からキーを取り出します
krsort | 配列をキーで降順にソートします
ksort | 配列をキーで昇順にソートします
max | 最大値を返します
mb_convert_encoding | ある文字エンコーディングの文字列を、別の文字エンコーディングに変換します
mb_convert_kana | カナを("全角かな"、"半角かな"等に)変換します
mb_strimwidth | 指定した幅で文字列を丸めます
mb_stripos | 大文字小文字を区別せず、 文字列の中で指定した文字列が最初に現れる位置を探します
mb_strlen | 文字列の長さを得ます
mb_strpos | 文字列の中に指定した文字列が最初に現れる位置を見つけます
mb_strwidth | 文字列の幅を返します
mb_substr | 文字列の一部を得ます
md5 | 文字列のmd5ハッシュ値を計算します
min | 最小値を返します
mt_rand | メルセンヌ・ツイスター乱数生成器を介して乱数値を生成します
nl2br | 改行文字の前に HTML の改行タグを挿入します
number_format | 数字を千の位毎にグループ化してフォーマットします
parse_url | URL を解釈し、その構成要素を返します
pathinfo | ファイルパスに関する情報を返します
property_exists | オブジェクトもしくはクラスにプロパティが存在するかどうかを調べます
range | ある範囲の整数を有する配列を作成します
rawurldecode | URL エンコードされた文字列をデコードします
round | 浮動小数点数を丸めます
rsort | 配列を降順にソートします
shuffle | 配列をシャッフルします
sort | 配列を昇順にソートします
str_pad | 文字列を固定長の他の文字列で埋めます
strip_tags | 文字列から HTML および PHP タグを取り除きます
stripos | 大文字小文字を区別せずに文字列が最初に現れる位置を探します
strlen | 文字列の長さを得ます
strpos |  文字列内の部分文字列が最初に現れる場所を見つけます
strstr | 文字列が最初に現れる位置を見つけます
strtolower | 文字列を小文字にします
strtotime | 英文形式の日付を Unix タイムスタンプに変換します
strtoupper | 文字列を大文字にします
strval | 変数の文字列としての値を取得します
substr | 文字列の一部分を返します
trim | 文字列の先頭および末尾にあるホワイトスペースを取り除きます
unset | 指定した変数の割当を解除します
urlencode | 文字列を URL エンコードします

- 関数の第一引数を変数とし、修飾子として関数名を指定します。第二引数以上の引数は修飾子の後ろにコロン(`:`)区切りで記載してください。
- 変数が配列の場合は、関数名の先頭にアットマーク(`@`)を記載してください。
- 関数に利用するPHPデフォルト定数は[Kurocoで利用可能な定数一覧](/ja/docs/reference/constant-variables/#phpのデフォルト定数)を参照してください。

**記載例 (array_column の場合)**  

```smarty
{* データベースから返ってきたレコードセットの例 *}
{assign_array var="records" values=""}

{assign_array var="record" values=""}
{append var="record" index="id" value=2135}
{append var="record" index="first_name" value="John"}
{append var="record" index="last_name" value="Doe"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=3245}
{append var="record" index="first_name" value="Sally"}
{append var="record" index="last_name" value="Smith"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=5342}
{append var="record" index="first_name" value="Jane"}
{append var="record" index="last_name" value="Jones"}
{append var="records" value=$record}

{assign_array var="record" values=""}
{append var="record" index="id" value=5623}
{append var="record" index="first_name" value="Peter"}
{append var="record" index="last_name" value="Doe"}
{append var="records" value=$record}

{* 関数の第一引数を変数とし、修飾子として関数名を指定します。第二引数以上の引数は修飾子の後ろにコロン(`:`)区切りで記載します *}
{* 変数が配列の場合は、関数名の先頭にアットマーク(`@`)を記載します *}
{assign var="first_names" value=$records|@array_column:'first_name'}

{$first_names|@debug_print_var}
```

**実行結果**  

```
Array (4)
0 => "John"
1 => "Sally"
2 => "Jane"
3 => "Peter"
```

**記載例 (str_pad の場合)**

```smarty
{assign var=input value="Alien"}
{assign var=output value=$input|str_pad:10:"_":$smarty.const.STR_PAD_BOTH}

{$input|debug_print_var}
{$output|debug_print_var}
```

**実行結果**

```
"Alien"
"__Alien___"
```