関数

関数とは

  • 何らかの処理をして、返り値を返すもの
  • 関数名( 引数 )

《例》

<?php
$today = date('Ynj');
echo $today;
?>
  • PHPに用意されている date()関数を使用して、表示した日時を返しています
  • date()と引数を書くだけで、「サバーに日付を問い合わせる」「日付を取得する」「日付を適切な文字列にする」という処理を自動的に行うことができる
引数と関数の関係
  • 引数は1つとは限らない
  • 引数がない場合もある
多くの関数に引数がある理由
  • 出力形式の指定→処理方法の詳細の指定
  • 日時の指定→処理元となるデータの指定



date( その書式で取得するか , いつの日付を取得するか )

WordPressでよく使われるPHPの関数

  • PHPで用意されている関数(ビルトイン関数)
  • WordPressで用意されている関数(テンプレートタグ)


《ビルトイン関数例》

関数 用途
printf / sprintf

sprintf( 'View all posts by %s', $auther )のように、所定の書式に文字列を差し込む。printfはecho(画面に表示)し、sprintfはechoしない

function_exists function_exists()で、関数が存在するかどうかをチェックする
isset / empty 値があるかどうかをチェックする。issetは変数がセットされていればtrueになる。emptyは変数がセットされていない場合、0や空文字列の場合にtrueになる
in_array in_array( 値, 配列 )で、配列内に値があるかどうかをチェックする
count 配列の要素の数を返す
array_shift 配列から要素を1つずつ取り出す
implode implode( '、', $array )のように、配列を文字列に展開する
var_dump 変数や配列に格納されているデータを出力する。制作途中での確認で使う

自分で関数を作成する


function 関数名(引数名) {
  実際の処理をここに記入
  処理の元になる引数は上記の引数名を利用して記述する
}

  • 「function」は、「これから関数を定義します」という宣言です
  • 画像を正しく表示させるためには「sample.jpg」を/wp-content/uploads/にアップロードし、「◯◯.com」の部分を正しいURLに変更する必要があります
<?php get_header(); ?>

<?php
function output_img_link($img) {
	echo '<img src="';
	echo $img;
	echo '">';
}
output_img_link('http://◯◯.com/wp-content/uploads/sample.jpg');
?>

<?php get_footer(); ?>


最終的には次のようなimg要素が出力されます。

<img src="http://◯◯.com/wp-content/uploads/sample.jpg">


※この例は、セキュリティを考慮していません。

引数は配列の場合もある
<?php get_header(); ?>

<?php
function output_img_link_from_array($img) {
	echo '<img src="';
	echo $img[0];
	echo '" width="';
	echo $img[1];
	echo '" height="';
	echo $img[2];
	echo '">';
}

$img = array('http://◯◯.com/wp-content/uploads/sample.jpg','640','480');
output_img_link_from_array($img);
?>

<?php get_footer(); ?>


最終的には次のようなimg要素が出力されます。

<img src="http://◯◯.com/wp-content/uploads/sample.jpg" width="640" height="480">
関数を定義する場所
  • 関数を定義する場所は、関数を呼び出す場所と離れていてもかまいません
  • 別ファイルに分かれていても、順序も自由で関数の定義の前に呼び出していても動作します
<?php get_header(); ?>

<?php
output_img_link('http://◯◯.com/wp-content/uploads/sample.jpg');

function output_img_link($img) {
	echo '<img src="';
	echo $img;
	echo '">';
}
?>

<?php get_footer(); ?>
  • WordPressでは自分で関数を作る際、関数の定義はテーマのfunctions.phpで行い、テンプレートファイルで関数を呼び出すかたちをとること一般的です