PHPの配列
PHPの配列の括弧の違い。
array()と[]。
PHPのバージョンアップによる配列の短縮構文で、array()を[]で置き換えることが出来るようになっている。
array()でも[]でも、配列変数argsのキーにダブルアロー演算子(=>)で値を入れられる。
PHP5.4からは、配列の短縮構文を使用できる。
PHP5.4から配列の短縮構文は使用できるようになっているが、気付けばすでに5年以上が経っている。
しかしネット上には様々なコードがあり、自分自身も含め、短縮されていない構文で書かれていることも多い。
良い情報はそれ自体でありがたいことだが、プログラムの場合、括弧ひとつ違ったり抜けたりするとすぐさまエラーとなるのでやっかい。
[]はarray()を短縮した書き方なので、結果は同じ。
array()と[]は同じ役割なので、イメージとしては、「array丸括弧 = 角括弧」という感じ。
ちなみにWordPressでよく使われるカスタム投稿タイプの連想配列と、ページ送りのプラグインWP-PageNaviのコードの例は下記のようになる。
array()と[]の使用例。
array()を使った例。
WP Queryでの例:
PHP
<?php
$args = array(
'post_type' => 'post',
'posts_per_page' => 1,
'paged' => $paged,
);
?>
(※()丸括弧、または小括弧やパーレンとも読む。)
[]を使った例。
WP Queryでの例:
PHP
<?php
$args = [
'post_type' => 'post',
'posts_per_page' => 1,
'paged' => $paged,
];
?>
(※※ []は角括弧、または大括弧やブラケットとも読む。)
array()と[]は同じ内容を出力する。
出力内容は同じ。
上記の2つの書き方は、同じ内容を出力する。ただし、古いバージョンの記述方法は、いずれ非推奨になる可能性はありえる。
ほとんどのサーバーではPHPの対応バージョンは上がっているので、今後新規で制作する際は新しい書き方である[]を使った配列で記述した方が無難かもしれない。
ちなみにVS Codeでは、[]の使い方など、間違いがある箇所では色と波線でエラー表示が出るので、これを一つの目安として学んでいくのも良いかも。
array()はPHPの古いバージョンの書き方。
array()を使った書き方。
いずれ非推奨になる可能性や、サーバーの処理速度に影響する可能性もあり得る。
WordPressのシェア率などを踏まえるとすぐに非推奨になるとは考えにくい。
ただもしかすると、サーバーのPHPのバージョンが上がるとPHPの走りが良くなるなど、サイトの高速化につながる可能性はある。
register_taxonomyでの例。
<?php
function add_custom_taxonomy(){
register_taxonomy( 'articles-cat',
'articles', array( 'label' => 'カテゴリー',
'singular_label' => '記事カテゴリー',
'hierarchical' => true, 'public' => true, ) );
}
add_action('init', 'add_custom_taxonomy');
?>
- add_custom_taxonomyは関数名なので、任意で決められる。ただし使い回す機会が多いのでわかりやすい名前で統一した方が良いと思う。
- add_action(アクションフック)はfunctionの先に書いても後で書いてもどちらでも動く。CSSのanimationプロパティがセレクタの前でも後でも変わらないように。
WP-PageNaviでの例。
<?php
if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $loop));
?>
[]はPHPの新しいバージョンの書き方。
[]を使った書き方。
register_taxonomyでの例。
<?php
function add_custom_taxonomy(){
register_taxonomy(
'articles-cat',
'articles',
[
'label' => 'カテゴリー',
'singular_label' => '記事カテゴリー',
'hierarchical' => true, 'public' => true,
]
);
}
add_action('init', 'add_custom_taxonomy');
?>
WP-PageNaviでの例。
<?php
if(function_exists('wp_pagenavi')) wp_pagenavi(['query' => $loop]);
?>
以上、参考になれば幸いです。
※Webデザインは実務数年、職業訓練校講師数年、フリーランス数年、計15年以上のキャリアがありますが、一気にがぁっと書いているので「です・ます調」ではありません。(元々はメモ書きでした。) ※事実や経験、調査や検証を基にしていますが、万一なにかしら不備・不足などがありましたらすみません。お知らせいただければ訂正いたします。 ※写真は主にUnsplashやPixabayのフリー素材を利用させていただいております。その他の写真や動画もフリー素材やパブリックドメイン、もしくは自前のものを使用しております。
WordPress 関連メモ。
- Simple Image XML Sitemapの使い方の例。画像サイトマップをGoogleへ。
- WordPressのリビジョン。正しく表示されないときの復元の例。
- PerplexityとWordPressの名前と意味合い。著作権と知的財産。
- WordPressのセキュリティ対策。脆弱性の疑問と強化設定。
- WordPressのテーマ。有料と無料の違いと、ウェブサイトの例。
- Googleアナリティクスでの自分のアクセスを除外。【WordPress】
- WordPressの不要なメディアファイルを削除する方法。Media Cleaner。
- WordPress 画像のキャプション表示を削除したい場合。
- WordPressのログインパスワードを変更する方法。セキュリティ対策にも。
- WordPressのトップページがindex.phpでもfront-page.phpでもhome.phpでも問題はない。
- reCAPTCHAの導入例と、バッジ(マーク)をCSSで非表示に。
- WordPressから届く「モデレートしてください」を止めたい。
- WordPress投稿の目次が消えたら!Table of Contents Plusの表示方法。
- 「データベース接続確立エラー」の対処。wp-configに問題がないとき。
- WordPressの投稿IDを確認したい時は、ここを見るのが簡単。
- WordPressのセキュリティをオンラインチェック、「Sucuri」。
- WordPress pタグを投稿記事から削除する1行のコード。
- アイキャッチ画像(WordPressのサムネイル画像)がない場合、いらない場合は、これで解決。
- さくらインターネットのコンテンツブーストの設定方法。(数ステップで。)
- さくらのサーバーからさくらのサーバーへの引越しで、「DNSゾーンが既に登録されています」のエラーが出たとき。
- WordPressで動画が再生されない!ときの対処。
- WordPressの投稿とカスタム投稿を振り分けたい時はこれで解決。(条件分岐できない時の対処方法。)
- 辿ったリンクは期限が切れています!? WordPressテーマのアップロードエラー対処。
- PHPの配列の括弧の違いは?WordPressでよく見るarray()と[]。
- Contact Form 7に確認画面がない!の対処方法。CSSか固定ページで。
- WordPressの引越しは、ささっとAll-in-One WP Migrationで。
- WordPressの検索ハイライト表示の仕方。(functions.phpに追加するだけ。)
- 引越しなどで、WordPressのメディアが消えた場合の、Moving Media Library。