PHP7技術者認定[初級]試験を受けました

2020/08/29(土)に、PHP7技術者認定[初級]試験を受験しました。
勉強時間は4時間ほどです。
勉強するにあたって、本はこちらを利用。
試験結果はこんな感じ。

試験本番の内容は意外と難しく、終了直後は「落ちた?」と思いましたが、
割と余裕で合格。

今回、試験勉強をしていて「へぇ〜」となった問題を4題セレクトしてみました。
(著作権のため、自分なりに問題を改変しております。)

宇宙船演算子

問題1:下記の実行結果を選択しなさい。
  
    print(1 <=> 2);
    print(3 <=> -2);
    print(2 <=> 2);
  

A:001 B:1-10 C:-110 D:実行エラー

宇宙船演算子( <=> )の問題です。

宇宙船演算子とは、左の値と右の値を比較して左辺が大きい場合は「1」、同じ場合は「0」、右辺が大きい場合は「-1」を返す演算子です。
PHP7より追加された演算子です。

  
    print(1 <=> 2);   // 右の方が大きいので「-1」

    print(3 <=> -2);  // 左の方が大きいので「1」

    print(2 <=> 2);   // 同じ大きさなので「0」
  

よって、正解は「C:-110」です。

変数名の命名規則

問題2:変数名の指定として誤ってるものは?(2つ選択)

A:YUTORI B:4yutori C:Yutori_Shine D:_yutori E:yutori-shine F:yutori2020

変数名の命名規則の問題です。下記の規則のもと、変数を命名できます

  • 頭に使って良いのはアルファベットとアンダースコア
  • 2文字以降に使える文字はアルファベット、数字、アンダースコア

よって、正解は「B:4yutori、E:yutori-shine」です。

等価演算子

問題3:次のコードの実行結果は?
  
    $data = '2020';

    if ($data == 2020) {
        print 'OK';
    } else {
        print 'NG';
    }
  

A:「OK」が表示される B:「NG」が表示される C:なにも表示されない D:実行エラー

等価演算子の問題です。

よく条件判定に使用する「 == 」「 != 」「 <> 」は、実は型まで比較しません。型まで完全一致しているかの比較をおこないたい場合、

「 === 」「 !== 」を使用する必要があります。

 

演算子 記述例 意味
== a == b bとaの値が等しい
=== a === b bとaの値が等しく型も等しい
!= a != b bとaの値が等しくない
<> a <> b bとaの値が等しくない
!== a !== b bとaの値または型が等しくない

よって、正解は「A:「OK」が表示される」です。

ファイルの読み込みエラー判定

問題4:ファイルの読み込みエラーを判定する場合、「???????」に入れるべき条件文は?
  
    $file = file_get_contents('hoge.txt');

    if(???????) {
        print 'ファイルの読み取りに失敗しました';
    }
  
A.    if ( $file )
B.    if ( !$file )
C.    if ( !$file == false )
D.    if ( !$file === false )

ファイルの読み取りエラー判定の問題です。

「0」とだけ書かれたファイルを読み込んだ場合、$fileには文字列「0」が返される。 PHPでは「0」はfalseと返されるため、AやCはfalseと判定されてしまう。 同値演算子「===」を用いることで、 返り値がboolean型のfalseであることを判定できる。

よって、正解は「D:if ( !$file === false )」です。

まとめ

今回は、試験に向けて勉強してて「へぇ〜知らなかった」ということをまとめてみました。
試験合格自体はほぼノー勉でいけましたが、今回いろいろ知れて有益だったので、
勉強してよかったです。
気軽に達成感を得られますし、割とウケのいい資格なので皆さんもぜひ受験してみてくださいね!

Twitter