[模擬問題] PHP8初級 – イントロダクション (CTO古庄道明からの出題)

こんにちは。PHP技術者認定機構 CTOの古庄道明です。
今日もPHP8初級試験の模擬問題と解説を紹介します。
以下を解いて出題のイメージと知識を補っていただけると幸いです。

目次

問題

PHP の特徴に関する次の記述のうち、誤っているものはどれか。

選択肢

選択肢1
PHPはWebサーバで実行されることからサーバサイド言語と呼ばれる。Webサーバが生成したWebページをクライアントに送った後のプロセスに、PHPは関与しない。

選択肢2
PHPはオープンソースプロジェクトであるためライセンス料金などの費用はかからないが、その内部を調べる際には制約がある。

選択肢3
Windows、macOS、Linux、その他多くのバージョンのUnixが動作するWebサーバコンピュータで、PHPは利用できる。

選択肢4
Apach、Microsoft Internet InformationServer(IIS)、その他CGI規格をサポートするWebサーバで、PHPは利用できる。

選択肢5
MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite、Redis、MongDBなどのデータベースとも、PHPは連携する。

回答と解説

問題は「PHPの特徴について」です。

選択肢1を見ていきましょう。

インターネットでWebページを開くとき、私たちが使っているパソコンやスマートフォン(クライアント)は、「ページをください」とWebサーバにリクエストを送ります。
そのリクエストを受け取って、必要な処理をして結果を返すのがサーバの仕事です。
このように「クライアント」と「サーバ」がやり取りして動く仕組みを、クライアント・サーバ方式(クライアントサーバシステム)といいます。

PHPは「サーバサイド言語」と呼ばれます。これは、プログラムの処理がサーバ側で実行されるという意味です。
たとえば、PHPで書かれたプログラムは、ブラウザ(=クライアント)からリクエストを受け取るとサーバ側で動いてHTMLを生成し、その結果だけをブラウザに返します。

つまり、ブラウザに届くのは「PHPの実行結果」であって、「PHPのコードそのもの」ではありません。
このため、ユーザーがWebページを開いた後に画面が動いたりボタンを押したりする処理は、PHPではなくJavaScriptなどのクライアントサイド言語が担当します。

PHPはあくまで「サーバがページを作って送り出すまでの処理」を担当します。
ブラウザにページを送った後の動作には関わりません。

選択肢1は「PHPはWebサーバで実行されることからサーバサイド言語と呼ばれる。Webサーバが生成したWebページをクライアントに送った後のプロセスに、PHPは関与しない。」とあります。
PHPはWebサーバで実行されるためサーバサイド言語と呼ばれ、ページ送信後には関与しません。
したがって、この選択肢の内容は正しい説明です。

選択肢2を見ていきましょう。

PHPは「オープンソースソフトウェア(OSS)」として開発されています。
オープンソースとは、プログラムの中身(ソースコード)が公開されており、誰でも自由に利用・改良・再配布できるという考え方です。

ここでよく混同されるのが「フリーウェア」です。どちらも無料で使えることが多いのですが、フリーウェアは“使うだけ”が自由で、中身を改良したり再配布したりはできません。
PHPは「自由の範囲がもっと広い」オープンソースソフトウェアです。

また、オープンソースソフトウェアは「無料で使える」だけでなく、誰でも再配布や販売ができるという特徴もあります。
ただし、その際には「元のライセンスを守る」必要があります。
たとえば、PHPのようにPHPライセンスで公開されているソフトウェアを有料で配布すること自体は可能です。ただし、ライセンスの条件(たとえばソースコードの提供や名称の使用制限)を守る必要があります。
この考え方は、オープンソースの自由(free as in freedom)を守るためのルールです。
つまり、「お金を取ってはいけない」というわけではなく、ライセンスの条件を守りながら、利用者の自由(ソースコードの閲覧・改変・再配布など)を妨げない形で提供することが求められます。

PHPの開発は、世界中のエンジニアや企業が協力して進めています。
新しい機能の提案やバグ修正も、コミュニティを通じて誰でも参加できます。
こうした「みんなで作る仕組み」が、PHPが長年発展を続けてきた理由のひとつです。

そのため、選択肢の文章のうち「PHPはオープンソースプロジェクトであるためライセンス料金などの費用はかからない」は、正しい記述です。

一方、この選択肢では「内部を調べる際には制約がある」と書かれていますが、これは誤りです。
オープンソースであるということは、内部のコードを自由に確認できるということを意味します。
実際、PHPのソースコードはGitHubなどで公開されており、誰でも閲覧・分析・ビルド(自分でコンパイル)することが可能です。

したがって、「オープンソースだから無料」という前半部分は正しいものの、「内部を調べる際には制約がある」という後半が誤りです。
この選択肢は誤った記述です。

なお、オープンソースの考え方に興味がある人は、『伽藍とバザール(The Cathedraland the Bazaar)』という有名なエッセイを調べてみるのもよいでしょう。
オープンソースがどのように発展してきたか、その背景を知るきっかけになります。

選択肢3を見ていきましょう。

PHPは、さまざまなOS(オペレーティングシステム)で動作するという特徴を持っています。
一般的にWebサーバを動かす環境としてはLinux系(たとえばUbuntuやRocky Linuxなど)が多く使われていますが、実はWindowsやmacOSでも同じようにPHPを動かすことができます。

これは、PHPがC言語で書かれたプログラムであり、OSごとに対応するビルド(実行できる形式)が用意されているためです。
PHP公式サイトでは、Windows向けにはすぐに使える実行ファイル(バイナリ版)が配布されており、macOSやLinuxではパッケージ管理コマンド(apt、yum、brewなど)を使って簡単にインストールできます。
さらに、公式サイトでは tar.gz、tar.bz2、tar.xz など、複数の圧縮形式で「ソースコード版」も配布されています。
このソースコードをダウンロードして自分の環境でコンパイル(ビルド)すれば、設定や機能を細かく調整したPHPを作ることも可能です。

また、PHPはWebサーバに組み込んで動かすことも、単体のコマンドラインプログラムとして動かすこともできます。

このように、PHPはOSやWebサーバを問わず幅広い環境で動作する柔軟な言語です。
そのため、選択肢にある「Windows、macOS、Linux、その他多くのバージョンのUnixが動作するWebサーバコンピュータで、PHPは利用できる。」という記述は、正しい説明です。

選択肢4を見ていきましょう。

PHPは、さまざまなWebサーバソフトウェアの上で動かすことができます。
代表的なのは Apache(アパッチ)、Nginx(エンジンエックス)、そしてMicrosoft IIS(Internet Information Services)です。
ApacheはLinuxを中心に広く使われており、macOSでも開発環境として利用されることがあります。また、現在も世界中のWebサイトで稼働しています。
Nginxは比較的新しいWebサーバで、軽量かつ高速に動作するのが特徴です。アクセスが多い大規模なWebサイトでは、Apacheに代わって使われることも多くなっています。
一方のIISは、Windows Serverなどに標準で搭載されているMicrosoft製のWebサーバです。

PHPはこれらのWebサーバに組み込んで動作させることができるほか、CGI(Common Gateway Interface)という仕組みを使って動かすこともできます。
CGIとは、「Webサーバが外部プログラムを呼び出して、その結果をWebページとして返すためのルール(規格)」のことです。
PHPはこのCGI方式に対応しているため、ApacheやNginx、IIS以外のサーバでも、CGI規格をサポートしていれば利用できます。

また、近年ではPHPをPHP-FPM(FastCGI Process Manager)という仕組みで動かす方法が主流になっています。
PHP-FPMは、CGIの改良版であるFastCGIをベースにした仕組みで、より高速かつ効率的にPHPを動かすことができます。
多くのサーバ環境では、ApacheやNginxとPHP-FPMを組み合わせて運用しています。

このように、PHPは古くからのCGI型にも新しい方式にも対応している柔軟な言語です。
したがって、選択肢にある「Apache、Microsoft Internet Information Server(IIS)、その他CGI規格をサポートするWebサーバで、PHPは利用できる。」という記述は、正しい説明です。

選択肢5を見ていきましょう。

PHPは、さまざまなデータベース(DB)と連携できる言語です。
Webアプリケーションでは「データを保存・検索する」処理が欠かせませんが、PHPはそのための仕組みを複数の拡張機能(extension)やライブラリとして提供しています。

代表的なデータベースとしては、MySQL、PostgreSQL、SQLite、Oracle Database、Microsoft SQL Server などがあります。
これらはいずれもPHPから接続でき、データの読み書きを行うことが可能です。
特にMySQLは、PHPと組み合わせて使われることが非常に多く、「LAMP(Linux +Apache + MySQL + PHP)」という開発環境の略語にも名前が入っています。

また、最近では PDO(PHP Data Objects)を通じてデータベースにアクセスする方法が一般的になっています。
PDOはPHPの拡張のひとつで、異なる種類のデータベースに対して同じインターフェースで接続できるようにする仕組みです。
たとえば、MySQLでもPostgreSQLでも、同じ書き方で接続・実行ができるため、プログラムの移植性が高まります。
ただし、PDOは共通機能に特化しているため、データベース固有の高度な機能を使いたい場合は、専用の拡張モジュールを利用することもあります。

さらにPHPは、RDB(リレーショナルデータベース)だけでなく、RedisやMongoDBのようなNoSQL系データストアとも連携できます。
Redisはデータをメモリ上に保持する仕組みで、セッション情報やキャッシュの保存などに利用されます。
MongoDBはドキュメント指向データベースで、柔軟なデータ構造を扱えるのが特徴です。
これらも専用の拡張モジュールやライブラリを利用することで、PHPから操作できます。

このように、PHPは多様な種類のデータベースと連携できる柔軟な言語です。
したがって、選択肢の「MySQL、PostgreSQL、Oracle、Microsoft SQL Server、SQLite、Redis、MongoDBな
どのデータベースとも、PHPは連携する。」という記述は、正しい説明です。

模擬試験1では、選択肢2に誤りがあるため、選択肢2が正解になります。

PHP8初級試験と公式問題集に興味がある方は、以下のページをご覧のうえ、この機会に是非受験ください。

PHP8初級試験
https://www.phpexam.jp/summary/novice8

公式問題集:PHP8技術者認定初級試験公式問題集A
Kindle版 https://amzn.asia/d/1bS88y9
ペーパーバック版 https://amzn.asia/d/3P3Izeu

また、試験対策セミナーは毎月開催しています。興味がある方は以下のページをご覧いただき是非セミナーにもご参加ください。(フォローいただけるとセミナーのご案内が届くようになります)

PHP技術者認定機構の公式Peatixグループ
https://peatix.com/group/43424

www.phpexam.jp

この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次