- Q1
Composerとは何ですか?
ANSWERPHPの依存関係管理ツールクリックして解説を表示EXPLANATIONComposerはPHPの依存関係管理ツールで、パッケージのインストールやオートローディングを管理します。
- Q2
Composerで依存関係を定義するファイルはどれですか?
ANSWERcomposer.jsonクリックして解説を表示EXPLANATIONcomposer.jsonに依存関係やプロジェクト設定を定義します。 - Q3
Composerでパッケージをインストールするコマンドはどれですか?
ANSWERcomposer installクリックして解説を表示EXPLANATIONcomposer installでcomposer.jsonに定義された依存関係をインストールします。 - Q4
Composerで新しいパッケージを追加するコマンドはどれですか?
ANSWERcomposer requireクリックして解説を表示EXPLANATIONcomposer require パッケージ名で新しいパッケージを追加します。 - Q5
Composerでパッケージを更新するコマンドはどれですか?
ANSWERcomposer updateクリックして解説を表示EXPLANATIONcomposer updateでパッケージを最新版に更新します。 - Q6
composer.lockファイルの役割は何ですか?
ANSWERインストールされたパッケージの正確なバージョンを記録するクリックして解説を表示EXPLANATIONcomposer.lockはインストールされたパッケージの正確なバージョンを記録し、環境間の一貫性を保証します。 - Q7
Composerのオートローダーを読み込む正しい方法はどれですか?
ANSWERrequire 'vendor/autoload.php'クリックして解説を表示EXPLANATIONvendor/autoload.phpをrequireしてオートローダーを有効にします。 - Q8
PSR-4とは何ですか?
ANSWERオートローディング標準クリックして解説を表示EXPLANATIONPSR-4はPHPのオートローディング標準で、名前空間とディレクトリ構造をマッピングします。
- Q9
PSR-1とPSR-12は何に関する標準ですか?
ANSWERコーディングスタイルクリックして解説を表示EXPLANATIONPSR-1は基本コーディング標準、PSR-12は拡張コーディングスタイルガイドです。
- Q10
PSR-3は何に関する標準ですか?
ANSWERロガーインターフェースクリックして解説を表示EXPLANATIONPSR-3はロガーインターフェースの標準で、共通のロギングAPIを定義します。
- Q11
PSR-7は何に関する標準ですか?
ANSWERHTTPメッセージインターフェースクリックして解説を表示EXPLANATIONPSR-7はHTTPメッセージインターフェースの標準で、リクエストとレスポンスを定義します。
- Q12
PHPでトレイトを定義するキーワードはどれですか?
ANSWERtraitクリックして解説を表示EXPLANATIONtraitキーワードを使用してトレイトを定義します。 - Q13
PHPでトレイトを使用するキーワードはどれですか?
ANSWERuseクリックして解説を表示EXPLANATIONuseキーワードでクラス内にトレイトを取り込みます。 - Q14
トレイトの主な目的は何ですか?
ANSWERコードの再利用を実現するクリックして解説を表示EXPLANATIONトレイトは多重継承の代替として、複数のクラスでコードを再利用するために使用します。
- Q15
次のコードでトレイトの正しい使用法はどれですか?
<?php trait Greeting { public function greet() { return "Hello"; } }ANSWERclass MyClass { use Greeting; }クリックして解説を表示EXPLANATIONクラス内で
use Greeting;とすることでトレイトを使用します。 - Q16
PHPでインターフェースを定義するキーワードはどれですか?
ANSWERinterfaceクリックして解説を表示EXPLANATIONinterfaceキーワードを使用してインターフェースを定義します。 - Q17
PHPでインターフェースを実装するキーワードはどれですか?
ANSWERimplementsクリックして解説を表示EXPLANATIONimplementsキーワードを使用してインターフェースを実装します。 - Q18
インターフェースの特徴として正しいものはどれですか?
ANSWERメソッドのシグネチャのみを定義するクリックして解説を表示EXPLANATIONインターフェースはメソッドのシグネチャのみを定義し、実装は含みません。
- Q19
PHPで複数のインターフェースを実装する正しい構文はどれですか?
ANSWERclass MyClass implements A, Bクリックして解説を表示EXPLANATIONカンマで区切って複数のインターフェースを実装できます。
- Q20
PDOとは何ですか?
ANSWERデータベースアクセス抽象化レイヤークリックして解説を表示EXPLANATIONPDO(PHP Data Objects)は複数のデータベースに対応したデータアクセス抽象化レイヤーです。
- Q21
PDOでMySQLに接続する正しいDSNはどれですか?
ANSWERmysql:host=localhost;dbname=testクリックして解説を表示EXPLANATIONmysql:host=ホスト;dbname=データベース名の形式でDSNを指定します。 - Q22
PDOでプリペアドステートメントを作成するメソッドはどれですか?
ANSWERprepare()クリックして解説を表示EXPLANATIONprepare()メソッドでプリペアドステートメントを作成します。 - Q23
PDOでプリペアドステートメントを実行するメソッドはどれですか?
ANSWERexecute()クリックして解説を表示EXPLANATIONexecute()メソッドでプリペアドステートメントを実行します。 - Q24
PDOでパラメータをバインドするメソッドはどれですか?
ANSWERbindParam() または bindValue()クリックして解説を表示EXPLANATIONbindParam()またはbindValue()でパラメータをバインドします。 - Q25
次のコードでプリペアドステートメントの正しい使用法はどれですか?
<?php $pdo = new PDO($dsn, $user, $pass); $stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?");ANSWER$stmt->execute([1])クリックして解説を表示EXPLANATIONプレースホルダー
?に値をバインドするにはexecute([値])を使用します。 - Q26
PDOで結果を連想配列として取得するフェッチモードはどれですか?
ANSWERPDO::FETCH_ASSOCクリックして解説を表示EXPLANATIONPDO::FETCH_ASSOCは結果を連想配列として取得します。 - Q27
PDOでエラーモードを例外に設定する方法はどれですか?
ANSWER$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION)クリックして解説を表示EXPLANATIONPDO::ATTR_ERRMODEをPDO::ERRMODE_EXCEPTIONに設定します。 - Q28
PDOでトランザクションを開始するメソッドはどれですか?
ANSWERbeginTransaction()クリックして解説を表示EXPLANATIONbeginTransaction()メソッドでトランザクションを開始します。 - Q29
PDOでトランザクションをコミットするメソッドはどれですか?
ANSWERcommit()クリックして解説を表示EXPLANATIONcommit()メソッドでトランザクションをコミットします。 - Q30
PDOでトランザクションをロールバックするメソッドはどれですか?
ANSWERrollBack()クリックして解説を表示EXPLANATIONrollBack()メソッドでトランザクションをロールバックします。
- Q31
SQLインジェクションを防ぐ最も効果的な方法はどれですか?
ANSWERプリペアドステートメントを使用するクリックして解説を表示EXPLANATIONプリペアドステートメント(パラメータバインディング)がSQLインジェクションに対する最も効果的な防御です。
- Q32
クロスサイトスクリプティング(XSS)を防ぐ方法はどれですか?
ANSWERhtmlspecialchars()で出力をエスケープするクリックして解説を表示EXPLANATIONhtmlspecialchars()で出力をエスケープすることでXSSを防止します。 - Q33
CSRF(クロスサイトリクエストフォージェリ)を防ぐ一般的な方法はどれですか?
ANSWERCSRFトークンを使用するクリックして解説を表示EXPLANATIONCSRFトークンを使用してリクエストの正当性を検証します。
- Q34
PHPでpassword_hash()のデフォルトアルゴリズムはどれですか?
ANSWERPASSWORD_DEFAULT(bcrypt)クリックして解説を表示EXPLANATIONPASSWORD_DEFAULTは現在最も安全と推奨されるアルゴリズムを使用します。 - Q35
PHPでセッションハイジャックを防ぐ方法として適切なものはどれですか?
ANSWERsession_regenerate_id()を使用するクリックして解説を表示EXPLANATIONsession_regenerate_id()でセッションIDを定期的に再生成することで防止します。 - Q36
PHPのfilter_var()関数の主な用途は何ですか?
ANSWER入力値の検証とサニタイズクリックして解説を表示EXPLANATIONfilter_var()は入力値の検証とサニタイズを行います。 - Q37
filter_var()でメールアドレスを検証するフィルターはどれですか?
ANSWERFILTER_VALIDATE_EMAILクリックして解説を表示EXPLANATIONFILTER_VALIDATE_EMAILでメールアドレスの形式を検証します。 - Q38
PHPで型宣言(Type Declaration)を使用する正しい構文はどれですか?
ANSWERfunction test(int $x): stringクリックして解説を表示EXPLANATION関数の引数と戻り値に型を宣言できます。
- Q39
PHP 8で導入されたNullable型の正しい構文はどれですか?
ANSWERfunction test(?int $x)クリックして解説を表示EXPLANATION?型名でnullを許容する型を宣言できます。 - Q40
PHP 8で導入されたUnion型の正しい構文はどれですか?
ANSWERfunction test(int|string $x)クリックして解説を表示EXPLANATION型1|型2で複数の型を許容するUnion型を宣言できます。
- Q41
PHP 8で導入されたmatch式の特徴は何ですか?
ANSWER厳密比較を行い値を返す式クリックして解説を表示EXPLANATIONmatch式は厳密比較を行い、値を返す式です。switchよりも簡潔です。
- Q42
PHP 8のmatch式の正しい構文はどれですか?
ANSWERmatch ($x) { 1 => 'one', 2 => 'two' }クリックして解説を表示EXPLANATIONmatch式は
match (式) { パターン => 結果, ... }の形式で記述します。 - Q43
PHP 8で導入されたNamed Arguments(名前付き引数)の正しい構文はどれですか?
ANSWERfunction(name: 'value')クリックして解説を表示EXPLANATION引数名: 値の形式で名前付き引数を渡します。 - Q44
PHP 8で導入されたConstructor Property Promotion(コンストラクタプロパティ昇格)とは何ですか?
ANSWERコンストラクタの引数を自動的にプロパティにする機能クリックして解説を表示EXPLANATIONコンストラクタの引数にアクセス修飾子を付けると自動的にプロパティになります。
- Q45
次のコードでConstructor Property Promotionの正しい使用法はどれですか?
ANSWERpublic function __construct(public string $name) {}クリックして解説を表示EXPLANATIONコンストラクタの引数にアクセス修飾子を付けることで自動的にプロパティになります。
- Q46
PHP 8で導入されたAttributes(属性)の構文はどれですか?
ANSWER#[Attribute]クリックして解説を表示EXPLANATION#[Attribute]の形式で属性を記述します。 - Q47
PHPのジェネレータを定義するキーワードはどれですか?
ANSWERyieldクリックして解説を表示EXPLANATIONyieldキーワードを使用してジェネレータを定義します。 - Q48
ジェネレータの主な利点は何ですか?
ANSWERメモリ効率が良いクリックして解説を表示EXPLANATIONジェネレータはメモリ効率が良く、大量のデータを処理する際に有用です。
- Q49
次のコードでジェネレータの正しい使用法はどれですか?
<?php function numbers() { for ($i = 1; $i <= 3; $i++) { yield $i; } }ANSWERforeach (numbers() as $n) { echo $n; }クリックして解説を表示EXPLANATIONジェネレータはforeachでイテレートできます。
- Q50
PHPのSPL(Standard PHP Library)に含まれるものはどれですか?
ANSWERイテレータとデータ構造クリックして解説を表示EXPLANATIONSPLにはイテレータ、データ構造、例外クラスなどが含まれます。
- Q51
PHPでオブジェクトのクローンを作成するキーワードはどれですか?
ANSWERcloneクリックして解説を表示EXPLANATIONcloneキーワードでオブジェクトのコピーを作成します。 - Q52
PHPでクローン時にカスタム処理を行うマジックメソッドはどれですか?
ANSWER__clone()クリックして解説を表示EXPLANATION__clone()メソッドはオブジェクトのクローン時に呼び出されます。 - Q53
PHPでオブジェクトを文字列に変換するマジックメソッドはどれですか?
ANSWER__toString()クリックして解説を表示EXPLANATION__toString()メソッドはオブジェクトを文字列として扱う際に呼び出されます。 - Q54
PHPで存在しないメソッドが呼び出されたときに実行されるマジックメソッドはどれですか?
ANSWER__call()クリックして解説を表示EXPLANATION__call()は存在しないメソッドが呼び出されたときに実行されます。 - Q55
PHPで存在しない静的メソッドが呼び出されたときに実行されるマジックメソッドはどれですか?
ANSWER__callStatic()クリックして解説を表示EXPLANATION__callStatic()は存在しない静的メソッドが呼び出されたときに実行されます。 - Q56
PHPで存在しないプロパティにアクセスしたときに実行されるマジックメソッドはどれですか?
ANSWER__get()クリックして解説を表示EXPLANATION__get()は存在しないプロパティを読み取ろうとしたときに実行されます。 - Q57
PHPで存在しないプロパティに値を設定しようとしたときに実行されるマジックメソッドはどれですか?
ANSWER__set()クリックして解説を表示EXPLANATION__set()は存在しないプロパティに値を設定しようとしたときに実行されます。 - Q58
PHPでオブジェクトを関数のように呼び出したときに実行されるマジックメソッドはどれですか?
ANSWER__invoke()クリックして解説を表示EXPLANATION__invoke()はオブジェクトを関数のように呼び出したときに実行されます。 - Q59
次のコードで__invoke()の正しい使用法はどれですか?
<?php class Greeter { public function __invoke($name) { return "Hello, $name"; } } $greet = new Greeter();ANSWER$greet('PHP')クリックして解説を表示EXPLANATION__invoke()により、オブジェクトを関数のように呼び出せます。 - Q60
依存性注入(Dependency Injection)の主な利点は何ですか?
ANSWERコードの疎結合化とテスト容易性クリックして解説を表示EXPLANATION依存性注入により、コードの疎結合化とテスト容易性が向上します。
- Q61
DIコンテナ(Dependency Injection Container)の役割は何ですか?
ANSWERオブジェクトの生成と依存関係の解決クリックして解説を表示EXPLANATIONDIコンテナはオブジェクトの生成と依存関係の解決を自動化します。
- Q62
シングルトンパターンの特徴は何ですか?
ANSWERインスタンスが1つだけ存在することを保証するクリックして解説を表示EXPLANATIONシングルトンパターンはクラスのインスタンスが1つだけ存在することを保証します。
- Q63
ファクトリーパターンの主な目的は何ですか?
ANSWERオブジェクトの生成ロジックをカプセル化するクリックして解説を表示EXPLANATIONファクトリーパターンはオブジェクトの生成ロジックをカプセル化します。
- Q64
MVCパターンでControllerの役割は何ですか?
ANSWERユーザー入力を受け取りModelとViewを調整するクリックして解説を表示EXPLANATIONControllerはユーザー入力を受け取り、ModelとViewを調整します。
- Q65
MVCパターンでModelの役割は何ですか?
ANSWERビジネスロジックとデータを管理するクリックして解説を表示EXPLANATIONModelはビジネスロジックとデータを管理します。
- Q66
MVCパターンでViewの役割は何ですか?
ANSWERデータを表示するクリックして解説を表示EXPLANATIONViewはデータを表示(プレゼンテーション)する責任を持ちます。
- Q67
ミドルウェアの一般的な用途は何ですか?
ANSWER認証、ログ、リクエスト/レスポンスの前処理クリックして解説を表示EXPLANATIONミドルウェアはリクエスト/レスポンスの処理パイプラインで認証やログなどを行います。
- Q68
ORM(Object-Relational Mapping)の主な目的は何ですか?
ANSWERデータベースとオブジェクトをマッピングするクリックして解説を表示EXPLANATIONORMはデータベースのテーブルとオブジェクトをマッピングし、SQLを抽象化します。
- Q69
PHPの有名なORMとして正しいものはどれですか?
ANSWEREloquent または Doctrineクリックして解説を表示EXPLANATIONEloquent(Laravel)やDoctrine(Symfony)が有名なPHP ORMです。
- Q70
RESTful APIの設計原則として正しいものはどれですか?
ANSWERHTTPメソッドを適切に使用しリソース指向で設計するクリックして解説を表示EXPLANATIONRESTful APIはHTTPメソッド(GET、POST、PUT、DELETE)を適切に使用し、リソース指向で設計します。
- Q71
PHPでHTTPステータスコードを設定する関数はどれですか?
ANSWERhttp_response_code()クリックして解説を表示EXPLANATIONhttp_response_code()でHTTPステータスコードを設定します。 - Q72
HTTPステータスコード201が示す意味は何ですか?
ANSWER作成成功クリックして解説を表示EXPLANATION201 Createdは新しいリソースが作成されたことを示します。
- Q73
HTTPステータスコード404が示す意味は何ですか?
ANSWERリソースが見つからないクリックして解説を表示EXPLANATION404 Not Foundはリクエストされたリソースが見つからないことを示します。
- Q74
HTTPステータスコード500が示す意味は何ですか?
ANSWERサーバー内部エラークリックして解説を表示EXPLANATION500 Internal Server Errorはサーバー内部でエラーが発生したことを示します。
- Q75
PHPでJWTを扱う一般的なライブラリはどれですか?
ANSWERfirebase/php-jwtクリックして解説を表示EXPLANATIONfirebase/php-jwtがPHPでJWTを扱う代表的なライブラリです。
- Q76
PHPでオートローディングを実現する関数はどれですか?
ANSWERspl_autoload_register()クリックして解説を表示EXPLANATIONspl_autoload_register()でオートローダーを登録します。 - Q77
PHPでリフレクションを使用するクラスはどれですか?
ANSWERReflectionClassクリックして解説を表示EXPLANATIONReflectionClassなどのリフレクションクラスでクラスの情報を取得できます。 - Q78
PHPでレイトスタティックバインディング(Late Static Binding)を実現するキーワードはどれですか?
ANSWERstatic::クリックして解説を表示EXPLANATIONstatic::は呼び出し時のクラスを参照するレイトスタティックバインディングを実現します。 - Q79
self::とstatic::の違いは何ですか?
ANSWERself::は定義クラス、static::は呼び出しクラスを参照クリックして解説を表示EXPLANATIONself::は定義されたクラスを参照し、static::は呼び出されたクラスを参照します。 - Q80
PHPでメモ化(Memoization)を実装する一般的な方法は何ですか?
ANSWER静的変数やプロパティに結果をキャッシュするクリックして解説を表示EXPLANATION静的変数やプロパティに計算結果をキャッシュすることでメモ化を実装します。
- Q81
PHPでCLIスクリプトの引数を取得する変数はどれですか?
ANSWER$argvクリックして解説を表示EXPLANATION$argvはコマンドライン引数を配列として保持します。 - Q82
PHPでCLIスクリプトの引数の数を取得する変数はどれですか?
ANSWER$argcクリックして解説を表示EXPLANATION$argcはコマンドライン引数の数を保持します。 - Q83
PHPでオブジェクトをシリアライズする関数はどれですか?
ANSWERserialize()クリックして解説を表示EXPLANATIONserialize()はオブジェクトを保存可能な文字列に変換します。 - Q84
PHPでシリアライズされた文字列をオブジェクトに戻す関数はどれですか?
ANSWERunserialize()クリックして解説を表示EXPLANATIONunserialize()はシリアライズされた文字列を元のオブジェクトに戻します。 - Q85
PHPでエラーハンドラをカスタマイズする関数はどれですか?
ANSWERset_error_handler()クリックして解説を表示EXPLANATIONset_error_handler()でカスタムエラーハンドラを設定します。 - Q86
PHPで例外ハンドラをカスタマイズする関数はどれですか?
ANSWERset_exception_handler()クリックして解説を表示EXPLANATIONset_exception_handler()でカスタム例外ハンドラを設定します。 - Q87
PHPの declare(strict_types=1) の効果は何ですか?
ANSWER厳密な型チェックを有効にするクリックして解説を表示EXPLANATIONstrict_types=1は厳密な型チェックを有効にし、型の自動変換を行いません。 - Q88
declare(strict_types=1)を記述する正しい場所はどこですか?
ANSWERファイルの先頭(<?phpの直後)クリックして解説を表示EXPLANATIONdeclare(strict_types=1)はファイルの先頭(<?phpの直後)に記述する必要があります。 - Q89
PHP 8.1で導入されたEnumの正しい構文はどれですか?
ANSWERenum Status { case Active; case Inactive; }クリックして解説を表示EXPLANATIONenum EnumName { case Value; }の形式でEnumを定義します。 - Q90
PHP 8.1のEnumでBacked Enum(バックド列挙型)とは何ですか?
ANSWER各ケースにスカラー値を持つEnumクリックして解説を表示EXPLANATIONBacked Enumは各ケースに文字列または整数の値を持つEnumです。
- Q91
PHP 8.1で導入されたReadonlyプロパティの特徴は何ですか?
ANSWER一度設定すると変更不可クリックして解説を表示EXPLANATIONReadonlyプロパティは一度設定されると変更できません。
- Q92
PHPでFiberとは何ですか?
ANSWER軽量な協調的マルチタスク機能クリックして解説を表示EXPLANATIONFiber(ファイバー)はPHP 8.1で導入された軽量な協調的マルチタスク機能です。
- Q93
PHPでアサーションを行う関数はどれですか?
ANSWERassert()クリックして解説を表示EXPLANATIONassert()は条件が偽の場合にエラーを発生させます。 - Q94
PHPUnitでテストメソッドを示すアノテーション/属性はどれですか?
ANSWER@test または #[Test]クリックして解説を表示EXPLANATION@testアノテーションまたは#[Test]属性でテストメソッドを示します。 - Q95
PHPUnitでテストクラスが継承すべき基底クラスはどれですか?
ANSWERPHPUnit\Framework\TestCaseクリックして解説を表示EXPLANATIONPHPUnit\Framework\TestCaseを継承してテストクラスを作成します。 - Q96
PHPUnitで値が等しいことを検証するアサーションはどれですか?
ANSWERassertEquals()クリックして解説を表示EXPLANATIONassertEquals()は2つの値が等しいことを検証します。 - Q97
assertEquals()とassertSame()の違いは何ですか?
ANSWERassertEquals()は値のみ、assertSame()は値と型を比較クリックして解説を表示EXPLANATIONassertEquals()は値の比較、assertSame()は値と型の両方を比較します。 - Q98
PHPUnitでモックオブジェクトを作成するメソッドはどれですか?
ANSWERcreateMock()クリックして解説を表示EXPLANATIONcreateMock()メソッドでモックオブジェクトを作成します。 - Q99
PSR-11は何に関する標準ですか?
ANSWERコンテナインターフェースクリックして解説を表示EXPLANATIONPSR-11はコンテナインターフェースの標準で、DIコンテナの共通インターフェースを定義します。
- Q100
PHPで非同期処理を実現するためによく使用されるライブラリはどれですか?
ANSWERReactPHP または Ampクリックして解説を表示EXPLANATIONReactPHPやAmp、Swooleなどが非同期処理を実現するためのライブラリです。