PHP:PHPの基礎知識 第1回 PHPの基礎的な概要について|PHP7初級試験対策

これからPHPを覚えようとしている方やPHPの資格を取りたい方などの参考になればと思い、何回かに分けて更新していきたいと思います。

まず今回はPHPの基礎となる概要や特徴について、絶対に覚えておくべきポイントや要点などをまとめました。
PHPを学びたい方の参考になると嬉しいです。

 


 

PHPとは

PHPとはオープンソースのプログラミング言語です。
多くのWEBサイトやWEBアプリケーションの開発で利用されています。

 

PHPの特徴について

PHPの利用する場合、ライセンス料は必要ありません。また、PHPはオープンソースです。

PHPはプログラムをコンパイルせずに実行するスクリプト言語。
動的なWEBページの生成が可能で、HTMLへの埋め込みやWEBアプリケーションの開発に利用できます。

WEBサーバで実行されるので、サーバサイドスクリプト言語と言われます。
また、Javascriptなどはクライアント側で実行されるので、クライアントサイドと言われています。

 

PHPの動作環境やデータベースについて

PHPはWindows、Mac、Linuxなど様々なプラットフォームに環境を構築することができます。
※UNIX環境で使用できる。

PHPが動作するWEBサーバは、ApacheやIISなどCGI規格をサポートするWEBサーバで動作します。

PHPは様々データベースをサポートしており、代表的なものは下記になります。
MySQL、PostgreSQL、SQLite、Oracle、Microsoft SQL Serverなど。

 

PHPの記述について

PHPの開始タグ終了タグは下記の書き方で記述します。

開始タグ:<?php
終了タグ:?>

<?php
// 処理内容
?>

 

PHPの区切り文字には「;」(セミコロン)が必要です。
なので以下のように文の終わりには「;」(セミコロン)を記述します。
「;」(セミコロン)の記述がないとパースエラーになります。

echo "Hello World";

 

コメントアウトについては以下のいずれかの方法でコメントすることができます。
また、コメントは行の末尾に記載することも可能です。

行コメント(「//」または「#」)

// コメント
# コメント
echo "Hello World"; // コメント

 

複数行コメント(「/* コメント */」)

/*
コメント
コメント
*/

 

ホワイトスペースは、半角スペース、タブ、空行、改行です。
コードの間に空行を入れてソースコードを見やすくすることが大事になります。
入れすぎるのは可読性が下がる可能性があるので注意が必要です。ただ、プログラムには影響しないので、正常にプログラムが走ります。
※全角スペースはホワイトスペースではない。

 

関数名の大文字・小文字については、予約語(キーワード)や関数名は大文字と小文字を区別する必要がないので、どちらで書いた場合でも、また大文字と小文字が混在していても処理することができます。
※変数名は大文字と小文字を区別する必要があるので注意。

 

PHPの基礎についてのポイント

上記、PHPの基礎的な内容について記述しました。
ポイントとしては下記になります。

  • PHPはライセンス料が必要ない
  • PHPはオープンソースである
  • プログラムをコンパイルせずに実行するスクリプト言語
  • WEBサーバで実行される(サーバサイドスクリプト言語)
  • CGI規格をサポートするWEBサーバで動作
  • PHPは様々データベースをサポート
  • PHPの「開始タグ:<?php」と「終了タグ:?>」の記述
  • PHPの区切り文字には「;」(セミコロン)
  • コメントアウトは「//」「#」「/* コメント */」
  • ホワイトスペースは、半角スペース、タブ、空行、改行
  • 関数名の大文字・小文字は区別しない

 


 

今回はPHPの超基礎的な内容について記載しました。
PHPで開発する上で基本的な内容となるので、初めての方はしかっり覚えておくのがいいと思います。

また、初級試験にも出てくる内容です。
これから受ける方はちゃんと理解しておくことが重要になります。

PHP:PHP7初級試験(PHP技術者認定試験)の資格取得合格への受験対策や学習方法などについて

PHP7初級試験を受けてきて、無事合格することができたので、資格取得への受験対策や学習方法についてメモしたいと思います。

難易度はそこまで難しい試験ではないと感じますが、試験までにどんな勉強をした方がいいのか、勉強時間がどのくらい必要かなど受験してみてわかったところがあったので、これからPHP7初級試験を受験する方への参考になれば嬉しいです。

また、私の場合はある程度PHPでの開発経験があったので、プログラム経験がない方(全くの初心者)はしっかり期間を取って対策する必要があるかと思います。
ただ、初級はそこまで難易度の高いレベルではないと思うので、PHPの基本的な知識を身につけて過去問などを何度か繰り返し行なって、内容をしっかり理解できるようになれば全然いけると考えています。


PHP7初級試験(PHP技術者認定試験)とは

PHPの知識・スキルを認定する試験で、PHP技術者認定機構の民間資格になります。
PHP7初級試験はITスキル標準(ITSS)のレベル1に該当します。

PHP7初級試験(PHP技術者認定試験)の概要

下記がPHP7初級試験の概要になります。
※2020年3月時点

種類:初級試験
受験料:12,000円
設問数:40問(28問正解で合格)
試験時間:1時間
合格ライン:7割(合計1000点満点、700点以上で合格)
出題形式:選択式(単一選択または複数選択)

受験料は決して安くはないと思うので、しっかり対策してから挑むことをお勧めします。

また、試験時間は1時間ですが私の感覚だと30分から40分くらいあれば一通りの問題に解答できるかと思います。
なので不安がある問題などは一通り終わった後に再度見直すことや選択式で複数選択の問題もあるので、間違えないように注意することが大事かと思います。

試験までの流れと当日までの流れ

まずは試験会場を探して、申し込みをします。
試験当日はOdysseyへのログインが必要になるので、事前にOdyssey IDの登録をしてた方がいいと思います。
(会場でも登録することはできると思いますが)

この「受験の流れ」に試験会場とOdyssey IDについて記載があります。

当日までの流れとしては、試験会場によって違うかと思いますが、私の場合は試験の1週間ほど前までに受験料の支払いを済ませる必要がありました。

当日は開始時間前までに身分証明書(顔写真付き)を持って会場にい行けば大丈夫かと思います。
試験が終われば、その場で合否が判定されるので、試験結果レポートを受け取って終わりとなります。

出題範囲

出題範囲は下記項目から1〜4問くらいが出題されます。(変更になる可能性もあり)
各項目ごとに重要なポイントをしっかり抑えておくことが大事になります。

  • PHPの特徴
  • テキストと数の操作
  • ロジック:判定と繰り返しについて
  • データのグループ:配列の操作
  • ロジックのグループ:関数とファイル
  • データとロジックの結合:オブジェクトの操作
  • ユーザとの情報交換:Webフォームの作成
  • 情報の保存:データベース
  • ファイルの操作
  • ユーザの記憶:クッキーとセッション
  • 他のWebサイトやサービスとのやり取り
  • デバッグ
  • テスト:プログラムが正しく動作するようにする
  • ソフトウェア開発で心得ておきたいこと
  • 日付と時刻
  • パッケージ管理
  • メールの送信
  • フレームワーク
  • コマンドラインPHP
  • 国際化とローカライゼーション

難易度・勉強方法

上記でも話しましたが難易度としては、そこまで高いレベルではないかと思います。
PHPでの開発経験がある方は、勉強しなくてもわかる問題は結構ありますし、改めて勉強しなくても受かる可能性は全然あるかと。

ただ、私の場合6〜7年くらいPHPの開発はしていますが、問題集を解いた時に意外と基本的なことがわかっていなかったり、こうだろうという曖昧な部分も多くあったので、開発経験者でも一通りは問題集を解いてみた方がいいと感じました。

私のオススメの勉強方法は書籍が一番かなと思います。
PHP7初級試験の認定教材でもある下記がわかりやすいです。

初めてのPHP

徹底攻略PHP7技術者認定[初級]試験問題集

ある程度経験がある方は問題集だけで十分だと思います。
一通り問題集を解いてみて間違ったところを再度復習して、しっかり覚えることができれば合格できる可能性は高いと思います。

また、実務未経験者の場合は若干難しい試験かもしれません。
まずは上記の書籍をしっかりと読み込み理解することと、できれば実際にプログラムを書きながらどんな動作をするのかなど、ある程度実装してみて経験することが大事かと思います。

勉強時間の目安

勉強時間の目安ですが、私の感覚では経験者は1週間しっかり勉強すればいけると思います。
問題集を2往復くらいして間違ったところ、しっかりと覚えるといった感じでしょうか。

未経験者の場合は、2~3ヶ月くらい勉強期間としてとってた方がいいような気がします。
しっかり勉強すれば、2~3ヶ月くらいでも全然いけると私は思います。


今回はPHP7初級試験(PHP技術者認定試験)について、基本的な概要や合格に向けての学習方法などを記載しました。

試験の問題ではひっかけ問題も結構あるので、注意して読むことがとても大事です。
また、各項目ごとに重要なポイントがあるので、別の記事で試験対策に向けての内容を記載したいと思います。

まずはこれからPHP7初級試験の資格取得を目指す方の参考になれば嬉しいです。

PHP:スクリプト実行時のタイムアウト時間を変更「max_execution_time」

PHPで大量のデータを処理する時にタイムアウト強制終了)してしまうことがあります。

タイムアウトする時間を設定する場合は、php.inimax_execution_timeの値を変更します。

システムの処理内容によっては、重い処理を行わなければいけないことがあります。
その場合は、max_execution_timeを調整しタイムアウト時間を変更すればエラーを回避することができます。

下記にphp.inimax_execution_timeの値を変更し、スクリプトタイムアウト時間実行時間)を変更した時の方法をメモします。


php.iniのタイムアウト時間を変更

SSHでサーバにログインします。

ログイン後、php.iniを編集します。

vi /etc/php.ini

max_execution_timeの値は秒単位で指定します。

max_execution_time = 30

↓変更

max_execution_time = 120

Apacheを再起動すれば反映されます。

/etc/init.d/httpd restart

■ タイムアウトの時間を無制限にする場合

タイムアウトの制限をかけずに無制限に設定する場合は
max_execution_timeの値を「0」に設定します。

max_execution_time = 0

上記の方法でスクリプトのタイムアウトする時間を調整することができます。

しかし、max_execution_timeはサーバの負荷を防止する為にあるので、
無制限に設定したり、大き過ぎる値を設定するなどは避けた方がいいと思います。

プログラムでバグがあった場合、長時間処理を実行して強制終了せずに
スクリプトが動いてしまうという可能性があるからです。

PHP:php.iniのメモリ「memory_limit」の値を変更

PHPで開発している時にメモリmemory_limit)の上限を変更したい場合があります。

memory_limitの値が低い場合、処理内容によっては「Fatal error」になってしまうことがあります。
その場合、php.iniで設定しているmemory_limitの値を大きくすればエラーを回避することが可能です。

下記にphp.inimemory_limitの値を変更し、メモリの上限を増加させた時の方法をメモします。


php.iniのメモリ上限を変更

SSHでサーバにログインします。

ログイン後、php.iniを編集します。

vi /etc/php.ini

「memory_limit」で検索すると値が設定されています。
設定されている値を変更し、保存します。

memory_limit = 128M

↓メモリ上限を変更

;memory_limit = 128M
memory_limit = 256M

Apacheを再起動すれば反映されます。

/etc/init.d/httpd restart

メモリの上限を無制限にする場合

メモリの制限をかけずに無制限に設定する場合は
memory_limitの値を「-1」に設定します。

memory_limit = -1

PHP:foreachのループを抜ける方法、又はスキップ

phpforeachを使用してループ処理をしている際に、条件によってループを抜けたり中断)、
スキップさせたい場合があります。

その場合は、breakcontinueを使用すれば、処理を中断させたりスキップさせることができます。

他にもfor、while、do-while、switchでも使用可能です。


ループ処理を抜ける(中断)「break」

breakを使用すれば、ループ処理を途中で終了させることができます。

foreach ($arr as $key => $value) {

    if (0 == strcmp($value, 'ccc'))    {
        break;
    }

    echo $value . '<br>';

}

出力結果

aaa
bbb

条件が一致した時に、ループを抜けます。


ループ処理をスキップ「continue」

continueを使用すれば、ループ処理をスキップさせることができます。

$arr = array('aaa', 'bbb', 'ccc', 'ddd', 'eee');


foreach ($arr as $key => $value) {

    if (0 == strcmp($value, 'ccc'))    {
        continue;
    }

    echo $value . '<br>';

}

出力結果

aaa
bbb
ddd
eee

条件が一致した時に、ループをスキップさせます。