'; echo $sitemap . '<br>'; ?> 出力 sitemap class="current" $testに'sitemap'が代入され、「$$test」は「$sitemap」と同じ変数になります。 $$testに'class="current"'を代入すること...">

PHP 可変変数「$$」で変数の値を変数名にする

/ PHP / Comment[0]

可変変数とはドル記号を2個付けた形の変数です。

どう働くか

一言で言うと変数に入れた値を変数名として扱うことが出来ます。

コード
<?php
$test = 'sitemap';
$$test = 'class="current"';
echo $test . '<br>';
echo $sitemap . '<br>';
?>
出力
sitemap
class="current"

$testに'sitemap'が代入され、「$$test」は「$sitemap」と同じ変数になります。
$$testに'class="current"'を代入することで、$sitemapに同じ文字が代入されています。

ナビにclass="current"を付けてみる

<div id="nav">
  <ul>
    <li<?= $index; ?>><a href="/">HOME</a></li>
    <li<?= $company; ?>><a href="/company/">会社概要</a></li>
    <li<?= $business; ?>><a href="/business/">業務内容</a></li>
    <li<?= $example; ?>><a href="/example/">実績</a></li>
    <li<?= $privacy; ?>><a href="/privacy/">プライバシーポリシー</a></li>
  </ul>
</div>

各ページのHTMLやphpなどの頭に以下のコードを追加するだけで$slugの値と同じ変数にclass="current"が入ってくれます。

<?php
$slug = 'index';
$$slug = ' class="current"';
?>

そしたらナビの部分のソースをinclude_once()すればもっと楽になりますね。

ちなみにWordPressであれば以下のようにスラッグを自動取得で代入させることも出来ます。

<?php
$slug = get_post($wp_query->post->ID)->post_name;
$$slug = ' class="current';
?>

PHPがちょこっと使えると本当にサイトの作成が楽になりますね。自分はまだまだ素人なのでこれからもっと精進して行きたいです。

関連記事

コメント

:
:
:
:
:
管理人のみ表示を許可