試験概要
準上級試験は、PHPの基本的な知識と実践的なスキルを証明する資格です。上級との主な違いは、出題範囲の深さと合格ラインにあります。
上級との比較:
- 準上級:合格ライン65%以上、基本的な実装力
 - 上級:合格ライン70%以上、応用的な設計力
 
| 項目 | 準上級 | 上級 | 
|---|---|---|
| 合格ライン | 65%以上 | 70%以上 | 
| 出題レベル | 基本的な実装力 | 応用的な設計力 | 
| 設計スキル | 基本的なOOP設計 | デザインパターン | 
| セキュリティ | 基本的な対策 | 高度な脆弱性対策 | 
| データベース | 基本的なSQL操作 | パフォーマンスチューニング | 
- 試験時間:90分
 - 問題数:75問
 - 形式:マークシート
 - 受験料:15,000円(税込)
 
学習範囲
PHP8準上級試験 出題範囲
- PHP基礎
- 変数とデータ型
 - 制御構文
 - 関数
 - 名前空間
 
 - オブジェクト指向
- クラスとオブジェクト
 - 継承
 - インターフェース
 - トレイト
 
 - データベース
- PDO基礎
 - 基本的なSQL
 - トランザクション
 
 - セキュリティ
- XSS対策
 - CSRF対策
 - パスワード管理
 
 - Web基礎
- HTTP基礎
 - REST API
 - JSON処理
 
 
試験を受けた感想
結果は
800/1500点で合格しました、、750点で合格のようです、5割でいいみたいですね。
2時間で30問だったので、30分で10問で最後に見直す時間を確保する予定で問題を解きました。
結果予定通り30分ほど余りました。
気になるところも見直しできたので、ペースはちょうどよかった気がします。
難易度
知らないクラス、関数、情報が結構出ましたが、文章中にその説明があるので、そこで回答を導き出した問題もありました。
とはいえ、すでに知っていたら、読解スピードもかからず、問題文の正誤の判断をじっくりできるので、知っておいた方がいいことは間違いないです。
そして、コードを読むスキルが大事になると感じました。実務である程度なれて、すらすらと読めて理解できていればわりと行けると思います。
普段のエディターみたいにコードのシンタックスハイライトがないので、やや読みづらいです、、
学習しとけばよっかたと思った点
- PHP 7.0で増えたもの
 - PHP 7.1で増えたもの
 - PHP 7.2で増えたもの
 - PHP 7.3で増えたもの
 - PHP 7.4で増えたもの
 - PHP 8.0で増えたもの
 - シリアライゼーション(3問くらいでた)
 - hash(そもそも複雑なので、、)
 - シャローコピー(2問くらいでた)
 
学習方法
下記のリンクにある模擬問題を何回もやりました、回答おぼえてしまうくらいしました。
公式問題集も3週くらいしました。結構理解しやすくてよかったです。
振り返ると、学習しててこれ網羅的に理解するのに時間かかるなとあきらめつつありました。
ですが、学習しながら、「へーっ」ためになるな(実務で使えそう)となり、仮に受験受からなくても知識として身になるなと開き直って学習してました。
解説記事一覧
- PHP8準上級試験 合格のカギ、学習法
 - 【php8上級/準上級試験】模擬問題解説 問題1.~ 3. PHPのインストール abstract staticメソッド 整数オーバーフロー
 - 【php8上級/準上級試験】模擬問題解説 問題4. __construct() __destruct __call() __callStatic()
 - 【php8上級/準上級試験】模擬問題解説 問題5. __toString() 「例外を投げる(throw new \Exception)とは?」 __invoke() __get() __debugInfo()
 - 【php8上級/準上級試験】模擬問題解説 問題6. &参照(リファレンス)unset()
 - 【php8上級/準上級試験】模擬問題解説 問題7. 名前空間とグローバル空間 use エイリアス(as)
 - 【php8上級/準上級試験】模擬問題解説 問題8. error_reporting set_error_handler() 例外捕捉 try catch
 - 【php8上級/準上級試験】模擬問題解説 問題9. interface implements ArrayAccess
 - 【php8上級/準上級試験】模擬問題解説 問題10. SPL RecursiveDirectoryIterator RecursiveIteratorIterator SplFileInfo SplFileObject
 - 【php8上級/準上級試験】模擬問題解説 問題11. $_SERVER $GLOBALS $argv $_COOKIE
 - 【php8上級/準上級試験】模擬問題解説 問題12. list() iterable
 - 【php8上級/準上級試験】模擬問題解説 問題13. 可変変数
 - 【php8上級/準上級試験】模擬問題解説 問題14. クラスの型宣言 Null合体代入演算子(??=)アロー関数
 - 【php8上級/準上級試験】模擬問題解説 問題15. private final nullsafe演算子
 - 【php8上級/準上級試験】模擬問題解説 問題16. if for break
 - 【php8上級/準上級試験】模擬問題解説 問題17. XSS (クロスサイトスクリプティング) htmlspecialchars()
 - 【php8上級/準上級試験】模擬問題解説 問題18. $_FILES
 - 【php8上級/準上級試験】模擬問題解説 問題19. CSRF (Cross-Site Request Forgery) random_bytes()
 - 【php8上級/準上級試験】模擬問題解説 問題20. $_SESSION
 - 【php8上級/準上級試験】模擬問題解説 問題21. ガベージコレクション xdebug_debug_zval()
 - 【php8上級/準上級試験】模擬問題解説 問題22. Directory DirectoryIterator SeekableIterator
 - 【php8上級/準上級試験】模擬問題解説 問題23.mail()
 - 【php8上級/準上級試験】模擬問題解説 問題24. escapeshellarg() escapeshellcmd()
 - 【php8上級/準上級試験】模擬問題解説 問題25 php:// stream_wrapper_register
 - 【php8上級/準上級試験】模擬問題解説 問題26 htmlspecialchars() htmlentities() strpos() tirm()
 - 【php8上級/準上級試験】模擬問題解説 問題27 Phar __HALT_COMPILER()
 - 【php8上級/準上級試験】模擬問題解説 問題28 function_exists()
 - 【php8上級/準上級試験】模擬問題解説 問題29 openssl_encrypt() openssl_decrypt()
 - 【php8上級/準上級試験】模擬問題解説 問題30 strtotime()
 - PHP セッション名の変更方法と php.ini の記述方法まとめ
 - モダンなPHPコードで使用!無名関数の使い方
 - 【PHP】stdClass を使用して(object) でキャスト
 - 【PHP】プロトコル / ラッパーについて(file:// php:// http:// https://)
 - 「PHPでJSONを扱う」json_encodeとjson_decode完全ガイド
 - 【PHP】新しい方の指定方法「nullable」
 - 【PHP】switch分の書き方、PHP 7.3 から PHP7.4の変更点