PHPで配列を関数に参照渡しで渡したらハマった。

$_GETにキーが存在し、かつ数値がどうか確かめたかったので引数を参照渡しで受け取る関数を作ったところ、キーが存在しない場合に勝手にキーが作られてしまいハマってしまいました。サンプルコードは以下。

function hoge( &$get ) {
	if ( isset( $get ) && preg_match( '/^\d+$/', $get ) ) {
		return true;
	} else {
		return false;
	}
}

var_dump( $_GET );
// array (size=0)
//   empty

hoge( $_GET['key'] )

var_dump( $_GET );
// array (size=1)
//   'key' => null

キーが存在しない場合は値が null のキーが作られてしまうようです。参照渡ししなければ良いので、事前に isset でチェックしてから関数に渡せば良いです。

function hoge( $get ) {
	if ( preg_match( '/^\d+$/', $get ) ) {
		return true;
	} else {
		return false;
	}
}

if ( isset( $_GET['key'] ) && hoge( $_GET['key'] ) ) {
	// 処理
}

MW WP Form

MW WP Form はショートコードベースのフォームプラグインです。多くの機能を持っており、例えば、多くのバリデーションルール、問い合わせデータの保存、そしてグラフ機能集計などを使用することができます。

さらに詳しく
Habakiri

Habakiri

Bootstrap ベースのシンプルな WordPress テーマ。レスポンシブ、多くのカスタマイズ機能。圧縮された CSS・JS を使用する高速化対策。Microformats 対応。Sass、クラスベースの functions.php。

さらに詳しく
basis-stylus

Basis

軽量なレスポンシブ Stylus/CSS フレームワーク。Flexbox ベースのグリッドシステム、疎結合なコンポーネント、バーティカルリズム。

さらに詳しく