-
PHP 7のpreg_replace_callback_array()関数の使い方を解説
PHP 7で新たに導入されたpreg_replace_callback_array()関数は、複数の正規表現パターンそれぞれにコールバック関数を割り当てて、一括で置換処理を実行できる便利な関数です。従来はpreg_replace_callback()を複数回呼び出す必要がありましたが、この関数を使えば1回の呼び出しで済むため、コードがすっきりし、可読性も大幅に向上します。 この関数は、指定した正規表現のセットにマッチした文字列(または文字列の配列)に対して、対応するコールバック関数を使って置換を行い、その結果を返します。 構文 preg_replace_callback_array(patte
-
PHP7の型ヒンティング徹底解説!弱い型チェックと厳格な型チェックの違い
PHP 7では、スカラー型宣言および戻り値の型宣言において、2種類の型ヒンティング(タイプヒンティング)が提供されています。弱い型チェック(Weak type checking)厳格な型チェック(Strict type checking)弱い型チェック(Weak type hinting)デフォルトでは、PHP 7は弱い型チェックモードで動作します。弱い型チェックでは、型宣言と実際の値が一致しなくても、エラーや致命的なエラー(Fatal Error)は一切発生しません。型の不一致が起こった場合でも、そのままコードが実行されます。この弱い型チェックの挙動は、strict_typesを含むdecl
-
PHP 7の例外とエラー ― Throwableインターフェースによる統一的なエラーハンドリング
PHP 7より前のバージョンでは、例外(Exception)だけをハンドリングすることができ、エラー(Error)を捕捉することは不可能でした。致命的なエラー(Fatal Error)が発生すると、アプリケーション全体、あるいはその一部が強制的に停止してしまうという問題がありました。 この課題を解決するために、PHP 7ではThrowableインターフェースが新たに導入され、例外とエラーの両方を統一的に処理できるようになりました。 Exception(例外)とは 致命的かつ回復可能なエラーが発生した場合、PHP 7はアプリケーションやスクリプトの実行を完全に停止させる代わりに、例外をスローしま
-
PHP7で配列の構造と値を表示する方法|print_r()とvar_dump()の違いを解説
PHPにおける配列(Array)とは、複数の要素を1つの変数にまとめて格納できるデータ構造です。同じ型の値だけでなく、異なる型の要素や、配列の中にさらに配列を格納した「多次元配列」も柔軟に扱えます。 配列の構造や値を確認したい場合、PHPではvar_dump() と print_r() という2つの関数が利用できます。どちらも配列の中身を人間が読みやすい形式で出力できるため、開発時のデバッグで広く使われています。 print_r() と var_dump() の違い print_r(): 変数の情報を人間が読みやすい形式で表示する関数です。配列の場合はキーと要素が対応づけられた形で出力されます
-
PHP7のUnicodeコードポイントエスケープ構文とは?基本から実例まで解説
PHP 7では、ダブルクォートで囲まれた文字列内に16進形式のUnicodeコードポイントを記述すると、対応するUTF-8文字として出力されます。16進数の桁数は2桁・4桁・6桁以上など、任意の組み合わせが可能です。専用の関数を呼び出す必要はなく、ダブルクォート文字列やヒアドキュメントの中に直接Unicode文字を書けるのが大きな特徴です。また、16進表記の先頭にあるゼロは省略しても問題ありません。 <html> <head> <title>UTF-8 Character</title> <meta http-equiv=content-
-
PHP 7の統一変数構文(Uniform Variable Syntax)を徹底解説!基本から実例まで
PHP 7の統一変数構文(Uniform Variable Syntax)とは? PHP 5以前の古いバージョンでは、変数の評価方法に一貫性がなく、混乱を招くケースがありました。代表例が ${$first[name]} のような記述です。この構文は直感的に理解しづらく、「一貫性のない構文」とされてきました。 こうした問題を解消するために、PHP 7では統一変数構文(Uniform Variable Syntax)と呼ばれる新しい構文が導入されました。 統一変数構文では、変数は左から右へと評価されます。この構文を使う際には、式を波括弧(中括弧)で囲む必要があります。以下がその例です。 echo
-
PHP7における定数配列の定義方法を徹底解説
PHPでは、配列を定数として扱うことができます。本記事では、PHPのバージョンによる定数配列の定義方法の違いと、具体的な使用例について詳しく解説します。 PHP 5.6での定数配列の初期化 PHP 5.6では、constキーワードを使用することでしか、定数配列を初期化できませんでした。以下のように記述します。 const STUDENT_ROLLNOS = [11, 12, 13, 14, 15]; このように、constキーワードに続けて定数名と配列を指定することで、値が変更されない固定の配列を作成できます。 PHP 7での定数配列の初期化 PHP 7からは、define()関数を使って
-
PHP7の定数配列で使える4つの演算方法|結合・等価・同一性・不等を徹底解説
PHP 7では、define()関数を使って配列を定数として定義できます。さらに、定義した定数配列に対しては、通常の配列と同様にさまざまな演算を行うことが可能です。本記事では、PHP 7における定数配列の主な演算の種類を4つ紹介し、それぞれコード例と実行結果とともに解説します。定数配列の結合(Union:+ 演算子)定数配列の等価比較(Equality:== 演算子)定数配列の同一性比較(Identity:=== 演算子)定数配列の不等比較(Inequality:!= 演算子)1. 定数配列の結合(+ 演算子)結合(ユニオン)は、プラス記号(+)を使って2つの配列を1つにまとめる演算です。結合
-
PHPとPythonの違いを徹底比較!初心者向けにわかりやすく解説
本記事では、人気の高いプログラミング言語であるPHPとPythonの違いについて、初心者にもわかりやすく詳しく解説します。それぞれの言語の特徴や強みを理解し、自分に合った言語選びの参考にしてください。 Pythonとは?主な特徴 Pythonは、シンプルで読みやすい構文が魅力の汎用プログラミング言語です。近年、AI分野を中心に世界中で急速に人気が高まっています。 学習しやすい:構文が平易な英語に近く、プログラミング初学者の最初の言語として最適とされています。 少ないコード量:同じ機能を実装する場合、PHPよりも少ない行数で記述できることが多いです。 動的型付け言語:変数の型を事前に宣言する必
-
PHP8での数値と文字列の比較 ― PHP7からの変更点と新しい挙動を解説
PHP 8における数値比較の基本的な考え方 PHP 8では、数値と文字列を比較する際の挙動が大きく変更されました。片方が数値でもう片方が数値形式の文字列である場合、両者は数値として比較されます。一方、文字列が数値として扱えない場合は、数値が文字列に変換され、文字列として比較されます。 比較対象となる文字列は、次の3種類に分類できます。 数値のみの文字列:数値だけを含む文字列。例:「1234」「1.24e1」など。 先頭が数値の文字列(leading-numeric string):先頭が数値で始まり、その後に空白を含む非数値文字が続く文字列。例:「12xyz」など。 非数値文字列:数値として
-
PHP 8のReflection APIで属性(アトリビュート)を読み取る方法
PHP 8では、クラス、プロパティ、クラス定数、メソッド、関数、パラメータなど、さまざまな要素に対して属性(アトリビュート)を宣言し、アクセスできるようになりました。PHP 8のReflection APIは、対応するすべてのReflectionオブジェクトに対してgetAttributes()メソッドを提供しています。getAttributes()メソッドは、ReflectionAttributeインスタンスの配列を返します。このインスタンスを通じて、属性名や引数を取得したり、指定された属性クラスのインスタンスを生成したりすることが可能です。例:PHP 8でReflection APIを使っ
-
PHP 8の名前付き引数(Named Arguments)とは?特徴と使い方を実例で解説
PHP 7.xまでのバージョンでは、関数へ渡す引数は「位置パラメータ」として扱われていました。これは、1番目の引数が必ず1番目のパラメータに割り当てられる仕組みで、指定されなかった引数にはデフォルト値が自動的に適用されます。 一方、PHP 8では名前付き引数(Named Arguments)が導入され、引数の位置ではなくパラメータ名を指定して値を渡すことが可能になりました。これにより、引数の順序を気にする必要がなくなり、デフォルト値を持つ引数を柔軟にスキップできます。さらに、コード自体が何を意味しているのか分かりやすい「自己文書化(self-documenting)」の効果も得られます。 P
-
【PHP 8】属性(アトリビュート)の基礎知識と使い方をサンプルコードで解説
PHP 8の属性(アトリビュート)とは 属性(アトリビュート)は、クラス、関数、クラスメソッド、クラスプロパティ、定数、パラメータなどにメタデータを付加するための特殊なクラスです。属性は実行時に何らかの処理を行うわけではなく、コードの動作に直接影響を与えることもありません。その代わり、リフレクションAPIを通じて参照でき、PHP 8では他のコードからクラスのプロパティやメソッドを検査できるようになります。 属性の主な特徴 1つの宣言に対して複数の属性を指定できる クラス名を解決できる 名前空間(ネームスペース)に対応している 0個以上のパラメータを持つことができる PHP 8における属
-
PHP 8のユニオン型(Union Types):複数の型を柔軟に扱う方法を徹底解説
PHP 8で導入されたユニオン型(Union Type)を使うと、単一の型だけでなく、2つ以上の複数の型の値を扱えるようになります。複数の型を指定する際は、縦棒(|)で型同士をつなぎます。 ユニオン型は、関数の引数(パラメータ)、戻り値の型、そしてクラスのプロパティで利用できます。 基本構文 type1|type2|……|type_n サンプルコード1:ユニオン型の基本 <?php class Number { private int | float $num; public function getNum(): float | int {
-
PHP 8のmixed疑似型とは?使い方と注意点を解説
PHP 8のmixed疑似型とは PHP 8で新しく導入されたmixed型は、あらゆる値を受け入れられる組み込みのユニオン型(union型)です。null、callable、resource、すべてのクラスオブジェクト、およびPHPのすべてのスカラー型を含むため、実質的には以下の型宣言と同等と考えることができます。 int|float|bool|string|null|array|object|callable|resource ただし、mixed型は単に型宣言を省略した場合とは意味が異なります。型を書かないケースでは「プログラマーが書き忘れた」可能性もありますし、旧バージョンとの互換性維持の
-
PHP8のコンストラクタプロパティ昇格(Constructor Property Promotion)の使い方
PHP 8では「コンストラクタプロパティ昇格(Constructor Property Promotion)」という新機能が導入されました。この機能を使うと、シンプルなオブジェクトを生成する際に必要となる冗長なボイラープレートコードを大幅に削減できます。クラスプロパティの定義、コンストラクタの定義、変数への代入といった一連の処理を、コンストラクタのパラメータリスト内でひとつの構文としてまとめて記述できるようになります。つまり、従来のようにクラスプロパティとコンストラクタを別々に定義する代わりに、コンストラクタプロパティ昇格を使えば、それらすべてを一度にまとめて書くことができるのです。例1:PH
-
PHP 8のmatch式(一致式)とは?switch文との違いと使い方を解説
PHP 8のmatch式(一致式)とは match式は、PHP 8で新たに追加された機能です。従来のswitch-case文とよく似ていますが、より安全なセマンティクス(比較の挙動)を提供する点が大きな特徴です。 match式の主な特徴 switch-case文のような「caseとbreak」の構造を使用しません。複数の条件をカンマ区切りでまとめて指定できる結合条件に対応しており、コードブロックへ処理を移す代わりに値を返します。 match式は「式」であるため、評価結果を変数に代入して保存できます。 switch文のようにbreak文が不要です。ただし、各アームに記述できるのは単一行の式のみ
-
PHP 8のNullsafe演算子(?->)とは?基本構文と使い方を実例付きで解説
)」を使用できるようになりました。Nullsafe演算子を使うことで、メソッドやプロパティへのアクセスを連鎖的(チェーン)に記述できます。評価の過程でチェーン内のいずれかの要素がnullになった場合、その時点でチェーン全体の実行が中断され、式全体はnullと評価されます。)とまったく同じように動作します。また、Nullsafe演算子は複数つなげて記述することも可能です。その場合、最初にnullに到達したNullsafe演算子の時点で短絡評価(ショートサーキット)が行われるため、それ以降の処理は実行されません。format();」を使用します。構文:PHP 8 Nullsafe演算子baz;PH
-
PHP 8のStringableインターフェースとは?__toStringメソッドの使い方を解説
PHP 8では、新たにStringableインターフェースが導入されました。このインターフェースは、アンダースコア2つ(__)で始まるマジックメソッド__toStringと密接に関連しています。__toStringメソッドは、オブジェクトを文字列として表現するためのものです。クラス内で__toStringメソッドを定義しておくと、そのオブジェクトが文字列として扱われる場面において、自動的にこのメソッドが呼び出されます。例:__toStringを使ったStringableインターフェース<?php class Employee{ public function __
-
PHPのトレーリングカンマ(末尾カンマ)とは?PHP 8での使い方を実例付きで解説
トレーリングカンマ(trailing comma:末尾カンマ)は、PHP 7.2から配列で利用できるようになった記法です。配列の最後の要素の後にカンマを付けられるため、すでに末尾にカンマがある行であれば、その行を修正することなく新しい要素を追加できます。PHP 8.0以前のトレーリングカンマPHP 8より前のバージョンでは、関数やメソッドのパラメータリストの最後にカンマを付けることはできませんでした。例function($x,$y,$z){ }PHP 8.0でのトレーリングカンマPHP 8では、パラメータリストの最後にもトレーリングカンマを付けられるようになりました。具体的には、関数やメソッド