人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHP(wordpress)についてご質問させてください。

wordpressのテーマ編集で以下のように変数に代入しています。

$custom = get_post_custom($post->ID);

$dog = isset( $custom["dog"][0] ) ? $custom["dog"][0]: '';
$cat = isset( $custom["cat"][0] ) ? $custom["cat"][0]: '';
$monkey = isset( $custom["monkey"][0] ) ? $custom["monkey"][0]: '';
$bird = isset( $custom["bird"][0] ) ? $custom["bird"][0]: '';
$tiger = isset( $custom["tiger"][0] ) ? $custom["tiger"][0]: '';

$dog以下のような変数が約50個くらいあるのですが、どうしてもソースが長くなってしまいます。
これをもっとコンパクトに短く記述する方法が知りたいです。

どなたかご教授いただけると助かります。

よろしくお願いします。

●質問者: 匿名質問者
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 匿名回答1号
ベストアンサー

一例

<?php
$custom = get_post_custom($post->ID);
$var_array = array('dog', 'cat', 'monkey', 'bird', 'tiger');
foreach ($var_array as $var) {
 ${$var} = isset( $custom[$var][0] ) ? $custom[$var][0]: '';
}

匿名質問者さんのコメント
ありがとうございます。 この記述で想定通りに動作させることができました。

2 ● 匿名回答2号

(本当の要件がわからないので)まったく同じではないですが、50個の部分が可変だったり、前もってどんな値が来るかわからない場合はこういう書き方もあるかと思います。

$names = array();
foreach ($custom as $key => $item) {
 if (count($item) > 0) {
 $names[$key] = $item[0];
 }
}
extract($names);

匿名質問者さんのコメント
ありがとうございました。 今回は上の方の回答を参考にさせていただきましたが、こういう記述もあるんですね。 後学のために覚えておきます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ