暗記メーカー
ログイン
PHP7 技術者認定初級試験 模擬問題
  • しのしの

  • 問題数 40 • 2/1/2024

    記憶度

    完璧

    6

    覚えた

    14

    うろ覚え

    0

    苦手

    0

    未解答

    0

    アカウント登録して、解答結果を保存しよう

    問題一覧

  • 1

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

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

  • 2

    問題2 次のコードに関する記述のうち、誤っているものはどれか。 [ コード ] 【A】 【B】ここにプログラムの概要をコメントとして記述する。 print 【C】 <form method="post" action="$_SERVER[PHP_SELF]">  …【D】 Your Name: <input type="text" name="user" /> <br /> <button type="submit">Say Hello</button> </form> _END_; ?>

    【C】に「>>>_START_」を記述すると、その直後から「_END_」の直前までがヒアドキュメントとしてprint命令に渡され表示がなされる。

  • 3

    問題3 テキスト操作に関するコードの説明のうち、誤っているものはどれか。 (%は全角記号で書かれているが、半角記号として回答すること)

    「print substr('abcde', 0, 3);」の実行結果は「abcd」である。

  • 4

    問題4 次のコードの実行結果として正しいものはどれか。 $a = 2 + 3 * 6; $b = $a % 7; $c = $b ** 2; print($c);

    36

  • 5

    問題5 次のコードの実行結果として正しいものはどれか。 $n = 2; $p = 3; ++$n; $p *= 2; $a = "$n, $p"; --$n; $p *= 3; $b = "$n, $p"; print $a . ' / ' . $b;

    3, 6 / 2, 18

  • 6

    問題6 次のコードの【 A 】に入れた場合にtrueが返される組み合わせとして正しいものはどれか。 if(【 A 】) { print("true"); } else { print("false"); } 【1】"php" > "perl" 【2】0 != "0" 【3】5 - 6 + 1 【4】"false" 【5】0 + "false" 【6】"543a" < 56 【7】abs(-6) > 10 / 2

    【1】【4】【7】

  • 7

    問題7 コードAをコードBで代替して同じ実行結果を得たい場合、コードBの【  A  】に入るものとして正しいものはどれか。 [ コードA ] $i = 1; while($i <= 20) { print ($i. ","); $i += 2; } [ コードB ] 【  A  】{ print ($i.","); }

    for($i = 1; $i <= 20; $i += 2)

  • 8

    問題8 次のコードの実行結果として正しいものはどれか。 $num[0] = 'zero'; $num[1] = 'one'; $num[3] = 'three'; $num[2] = 'two'; print ("【loop_A】"); for ($i=0, $count_num = count($num); $i < $count_num; $i++) { print "$num[$i]"."," ; } print ("【loop_B】"); foreach ($num as $i => $n) { print "$i"."," ; }

    【loop_A】zero,one,two,three,【loop_B】0,1,3,2,

  • 9

    問題9 配列のソートに関する次の記述のうち正しいものはどれか。

    asort()関数は配列を要素の値で昇順にソートする。この関数は連想配列のキーと値を保持する。

  • 10

    問題10 次の実行結果を得たい場合、コードの【A】と【B】に入る組み合わせとして正しいものはどれか。 [ 実行結果 ] snowdrop, marigold [ コード ] $flowers = array(array('rose','hibiscus','tulip'), array('snowdrop','lily','gardenia'), array('lavender','gentian','pansy'), array('dandelion','sun flower','marigold')); print 【A】.", ".【B】;

    【A】$flowers[1][0] 【B】$flowers[3][2]

  • 11

    問題11 関数に関する次の記述のうち誤っているものはどれか。

    関数宣言で指定する引数のデフォルト値は、リテラルのほか変数にすることもできる。

  • 12

    問題12 次のコードの実行結果として正しいものはどれか。 $val = 'a'; $val = 'b'; print ('【A】' . $val); function func($val = 'c') { $val = 'd'; print ('【B】' . $val); global $val; print ('【C】' . $val); $val = 'e'; print ('【D】' . $val); $val = 'f'; } $val = 'g'; func($val); print ('【E】' . $val);

    【A】b 【B】d 【C】g 【D】e 【E】f

  • 13

    問題13 次のコードの実行結果として正しいものはどれか。 $numbers = array(array('1', '2', '3'), array('4', '5', '6'), array('7', '8', '9')); function judge($arg) { $arg = $arg ** 2; if ($arg < 20){ return array($arg, "low"); } elseif ($arg < 45) { return array($arg, "middle"); } else { return array($arg, "high"); } } $result = judge($numbers[1][2]); print($result[0]." => ". $result[1]);

    36 => middle

  • 14

    問題14 次の実行結果を得たい場合に、コードの【A】【B】【C】に入るものとして正しい組み合わせはどれか。 [ 実行結果 ] 16 is a multiple of 8, 13 is indivisible by 4 [ コード ] function calc($a, $b) { if($a % $b !== 0){ 【A】 new Exception($a. ' is indivisible by '. $b); } return ($a.' is a multiple of '. $b); } try { print calc(16, 8). ", "; print calc(13, 4). ", "; print calc(10, 2). ", "; } 【B】 (Exception $e) { print $e->【C】; }

    【A】throw 【B】catch 【C】getMessage()

  • 15

    問題15 クラスに関する次の記述のうち誤っているものはどれか。なお「¥」はバックスラッシュに読み替えること。

    クラスには静的メソッドを定義できる。静的メソッドはクラス自体で実行されるほか、特定のオブジェクトインスタンスでも実行されるので$this変数が使える。

  • 16

    問題16 $_SERVER グローバル配列に関する次の記述のうち誤っているものはどれか。

    $_SERVER の PHP_SELF 要素は、現在のリクエストの URL のパス名部分を保持する。例えば「http://www.example.com/colors/red.php」のPHP スクリプトにアクセスする場合、$_SERVER['PHP_SELF'] は「/red.php」になる。

  • 17

    問題17 コードAによりWeb上で表示されるフォームにおいて、テキストボックスに「30」を入力し、メニューで「Yellow Banana」を選択してサブミットした場合、2つの値(「30」「Yellow Banana」)を表示させるコードBの【A】【B】に入る正しい組み合わせはどれか。 [ コードA ] <form method="POST" action="fruits.php"> <input type="text" name="fruits_id"> <select name="category"> <option value="red">Red Apple</option> <option value="yellow">Yellow Banana</option> <option value="orange">Orange Mango</option> </select> <input type="submit" name="submit"> </form> [コードB] Here are the submitted values:<br /> value1: <? php print 【A】 ?? '' ?> <br /> value2: <? php print 【B】 ?? '' ?>

    【A】$_POST['fruits_id'] 【B】$_POST['category']

  • 18

    問題18 Webフォームでサブミットされたデータの検証に関する次の記述のうち、誤っているものはどれか。

    同値演算子は2つの等号(==)であらわされ、2つの値を比較し、値が同じで同じ型の場合にtrueと評価するものである。

  • 19

    問題19 Webフォーム利用した攻撃に関する次の記述の【A】【B】【C】に入る組み合わせとして正しいものはどれか。 悪意あるユーザがWebサイトに不正なHTMLやJavaScriptをアップロードしてサイト利用ユーザのブラウザ上で実行可能にし偽ページへ誘導するなど利用ユーザに被害をもたらす【A】を防ぐには、未処理の外部入力を決して表示しないことが重要である。 そこで、疑わしい部分(HTMLタグなど)を取り除くか特殊文字をエンコードして、埋め込まれたHTMLやJavaScriptをブラウザが実行しないようにするための関数がPHPには用意されている。 【B】関数は文字列からHTMLタグを取り除き、【C】関数は特殊なHTML文字をエンコードする。

    【A】クロスサイトスクリプティング攻撃 【B】strip_tags() 【C】htmlentities()

  • 20

    問題20 ユーザ名「dog」とパスワード「bowwow」を使って、db.example.comで動作するMySQLサーバの「animals」という名前のデータベースに接続したい場合、データベースとのやり取りに使う新たなPDOオブジェクトを返す次のコードの【A】に入るものとして正しいものはどれか。 $dsn = '【A】'; $user = 'dog'; $password = 'bowwow'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connection failed'; }

    mysql:dbname=animals;host=db.example.com

  • 21

    問題21 次のSQL文を実行して、データベース「flowershop」にテーブル名「flowers」のデータベースを作成した。このデータベーステーブルに関するSQL文の説明として誤っているものはどれか。 CREATE TABLE flowers (flower_id INTEGER PRIMARY KEY,flower_name VARCHAR(255),price DECIMAL(6,2));

    テーブル「flowers」に、idが「1」、flower_nameが「rose」、priceが「300」円の新たなデータを追加する場合のSQL文は、「ADD INTO flowers (flower_id, flower_name, price) VALUES (1, 'rose', 300)」である。

  • 22

    問題22 テーブル「flowers」に次のようなデータがあり、実行結果として「iris, sun flower, jasmine,」を得たい場合、コードの【A】【B】【C】に入る組み合わせとして正しいものはどれか。 [ データ ] +-----------+-------------+--------+ | flower_id | flower_name | price | +-----------+-------------+--------+ | 1 | iris | 300.00 | | 2 | iris | 500.00 | | 3 | sun flower | 700.00 | | 4 | tulip | 350.00 | | 5 | jasmine | 450.00 | +-----------+-------------+--------+ [ コード ] (省略) try{ $db = new PDO($dsn, $user, $password); } catch (PDOException $e){ echo 'Connection failed'. $e->getMessage(); } $q = $db->【A】("【B】 * FROM flowers where price > 350"); while ($row = $q->【C】) { print "$row[flower_name]".", "; }

    【A】query 【B】SELECT 【C】fetch()

  • 23

    問題23 テーブル「flowers2」に次のようなデータがある場合に、以下のコードの実行結果として正しいものはどれか。 [ データ ] +-----------+-------------+--------+ | flower_id | flower_name | price | +-----------+-------------+--------+ | 1 | rose | 450.00 | | 2 | tulip | 730.00 | | 3 | carnation | 300.00 | | 4 | violet | 400.00 | | 5 | pansy | 400.00 | +-----------+-------------+--------+ [ コード ] (省略) try{ $db = new PDO($dsn, $user, $password); } catch (PDOException $e){ echo 'Connection failed'. $e->getMessage(); } $q = $db->query("SELECT * FROM flowers2 where price > 350 ORDER BY price DESC, flower_name"); while ($row = $q->fetch()) { print "$row[flower_name]".", "; }

    tulip, rose, pansy, violet,

  • 24

    問題24 次のテンプレート「template.html」を用いて「page.html」ファイルに結果を出力させたい場合、コードの【A】【B】【C】に入るものとして正しい組み合わせはどれか。 [ template.html ] <html> <head></head> <body> <h1>{hello}</h1> <p>Today is {today}.</p> </body> </html> [ コード ] $page = 【A】('template.html'); $date = date("Y-m-d H:i:s"); $page = 【B】('{today}', $date, $page); if (date('H')<12){ $page = 【B】('{hello}', 'Good morning!',$page); } elseif(date('H')>=12 && date('H') < 18) { $page = 【B】('{hello}', 'Good afternoon!',$page); } else { $page = 【B】('{hello}', 'Good evening!', $page); } 【C】;

    【A】file_get_contents 【B】str_replace 【C】file_put_contents('page.html', $page)

  • 25

    問題25 ファイルの部分的な書き込みに関する次の記述のうち誤っているものはどれか。

    fopen()関数はファイルへの接続をオープンし、プログラムでのその後のファイルへのアクセスに使う変数を返す働きをする。fopen()の第1引数にはファイルモード、第2引数にはアクセスしたいファイル名を指定する。

  • 26

    問題26 クッキーの設定に関する次の記述のうち誤っているものはどれか。

    setcookie()関数の第1引数にはクッキーの名前を、第2引数にはクッキーの値を指定する。setcookie()に指定するクッキーの値には、文字列か数字、配列を使うことができる。

  • 27

    問題27 セッションに関する次の記述のうち誤っているものはどれか。

    session.gc_maxlifetime構成ディレクティブはセッションをアクティブに保つためにリクエスト間に許されるアイドル時間を制御する。デフォルト値は30分である。

  • 28

    問題28 指定したURLの情報を取得する次のコードの【A】【B】【C】に入る組み合わせとして正しいものはどれか。 $ch = 【A】('https://study.prime-strategy.co.jp/'); 【B】($ch, CURLOPT_RETURNTRANSFER, true); $fact = 【C】($ch); print $fact

    【A】curl_init 【B】curl_setopt 【C】curl_exec

  • 29

    問題29 ファイル関数を使ったURLアクセスに関する次の記述のうち誤っているものはどれか。

    json_encode()関数はJSONオブジェクトをPHPオブジェクトに変換し、JSON配列をPHP配列に変換する。一方、json_decode()関数にPHPデータ型(文字列、数値、オブジェクト、配列など)を渡すと、渡されたもののJSON表現を含む文字列を返す。

  • 30

    問題30 エラーに関する次の記述のうち誤っているものはどれか。

    PHPはパースエラーが発生するとプログラムの動作を停止する。ほかにプログラムの動作が停止されるのは、Fatal ErrorとWarningが発生した場合である。

  • 31

    問題31 デバッグに関する次の記述のうち誤っているものはどれか。

    デバッグ出力に配列を含めるには、配列のうち一部の特定要素の詳細を出力するvar_dump()が便利である。

  • 32

    問題32 プログラムの動作テストに関する次の記述のうち誤っているものはどれか。

    生産性の高いテストに重要な原則は、テストする対象をできるだけ一つにまとめることである。

  • 33

    問題33 テスト駆動開発に関する次の記述のうち誤っているものはどれか。

    テスト駆動開発はあらゆる状況に適しており、何を行う必要があるかを明確にし、コードを網羅する包括的なテストを作成できる。

  • 34

    問題34 ソフトウェア開発全般に関する次の記述のうち誤っているものはどれか。

    稼働中のファイルを直接編集することによる問題を回避するためには、開発環境と本番環境が必要である。本番環境は作業を行う場所であり、開発環境はコードを実行して実際のユーザとのやり取りを試みる場所である。

  • 35

    問題35 今日の日付「2020年7月7日」を「2020/07/07」のフォーマットで出力したい場合、コードの【A】に入る正しいものはどれか。 $date = new DateTime(); print $date->format('【A】');

    Y/m/d

  • 36

    問題36 Composerに関する次の記述のうち誤っているものはどれか

    プログラムをバージョン管理システムにチェックインしている場合はComposerとの連携ができない。

  • 37

    問題37 メールの送信に関する次の記述のうち誤っているものはどれか。

    Swift MailerのsetBody()メソッドは、プレーンテキストのメッセージ本文を設定するものであり、Swift MailerではHTMLメールを送信することはできない。

  • 38

    問題38 フレームワークに関する次の記述のうち誤っているものはどれか。

    Laravel、Symfony、Zend Frameworkのテンプレート言語は、左から順にTwig、Blade、PHPである。

  • 39

    問題39 コマンドライン上で「php zipcode.php 1000004」を実行したときに、以下の実行結果結果を得たい。コードの【A】に入るものとして正しいものはどれか。 [ 実行結果 ] 1000004 [ コード ] $zipcode = 【A】; print $zipcode;

    $_SERVER['argv'][1]

  • 40

    問題40 文字列をutf-8で出力したい場合、コードの【A】に入るものとして正しいものはどれか。 $str = "草薙沙耶"; print 【A】($str, "utf-8");

    mb_convert_encoding