第1回 PHP 7 初級 模擬試験

PRIME STUDY

第1回 PHP 7 初級 模擬試験 へようこそ。

以下の各項目を入力後、「次へ」をクリックして模擬試験を開始してください。

※あらかじめ利用規約をご確認ください(プライム・ストラテジーから採用やイベントの情報など届くことがあります)。
※結果の詳細は入力いただいたメールアドレス宛てにのみお送りします。必ず確認可能なメールアドレスを入力してください。

お名前
メールアドレス(結果の詳細をお送りします)
1. PHPの特徴に関する次の記述のうち、誤っているものはどれか。
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_;
?>
3. テキスト操作に関するコードの説明のうち、誤っているものはどれか。
4. 次のコードの実行結果として正しいものはどれか。 

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

$n = 2;
$p = 3;

++$n;
$p *= 2;
$a = "$n, $p";

--$n;
$p *= 3;
$b = "$n, $p";
print $a . ' / ' . $b;
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
7. コードAをコードBで代替して同じ実行結果を得たい場合、コードBの【  A  】に入るものとして正しいものはどれか。


[ コードA ]
$i = 1;
while($i <= 20) {
    print ($i. ",");
    $i += 2;
}

[ コードB ]
【  A  】{
    print ($i.",");
}
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"."," ;
}
9. 配列のソートに関する次の記述のうち正しいものはどれか。
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】;
11. 関数に関する次の記述のうち誤っているものはどれか。
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);
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]);
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】;
}
15. クラスに関する次の記述のうち誤っているものはどれか。なお「¥」はバックスラッシュに読み替えること。
16. $_SERVERグローバル配列に関する次の記述のうち誤っているものはどれか。
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】 ?? '' ?>
18. Webフォームでサブミットされたデータの検証に関する次の記述のうち、誤っているものはどれか。
19. Webフォーム利用した攻撃に関する次の記述の【A】【B】【C】に入る組み合わせとして正しいものはどれか。

悪意あるユーザがWebサイトに不正なHTMLやJavaScriptをアップロードしてサイト利用ユーザのブラウザ上で実行可能にし偽ページへ誘導するなど利用ユーザに被害をもたらす【A】を防ぐには、未処理の外部入力を決して表示しないことが重要である。そこで、疑わしい部分(HTMLタグなど)を取り除くか特殊文字をエンコードして、埋め込まれたHTMLやJavaScriptをブラウザが実行しないようにするための関数がPHPには用意されている。【B】関数は文字列からHTMLタグを取り除き、【C】関数は特殊なHTML文字をエンコードする。
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';
}
21. 次のSQL文を実行して、データベース「flowershop」にテーブル名「flowers」のデータベースを作成した。このデータベーステーブルに関するSQL文の説明として誤っているものはどれか。

CREATE TABLE flowers (flower_id INTEGER PRIMARY KEY,flower_name VARCHAR(255),price DECIMAL(6,2));
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]".", ";
}
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]".", ";
}
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】;
25. ファイルの部分的な書き込みに関する次の記述のうち誤っているものはどれか。
26. クッキーの設定に関する次の記述のうち誤っているものはどれか。
27. セッションに関する次の記述のうち誤っているものはどれか。
28. 指定したURLの情報を取得する次のコードの【A】【B】【C】に入る組み合わせとして正しいものはどれか。

$ch = 【A】('https://study.prime-strategy.co.jp/');
【B】($ch, CURLOPT_RETURNTRANSFER, true);
$fact = 【C】($ch);
print $fact
29. ファイル関数を使ったURLアクセスに関する次の記述のうち誤っているものはどれか。
30. エラーに関する次の記述のうち誤っているものはどれか。
31. デバッグに関する次の記述のうち誤っているものはどれか。
32. プログラムの動作テストに関する次の記述のうち誤っているものはどれか。
33. テスト駆動開発に関する次の記述のうち誤っているものはどれか。
34. ソフトウェア開発全般に関する次の記述のうち誤っているものはどれか。
35. 今日の日付「2020年7月7日」を「2020/07/07」のフォーマットで出力したい場合、コードの【A】に入る正しいものはどれか。

$date = new DateTime();
print $date->format('【A】');
36. Composerに関する次の記述のうち誤っているものはどれか。
37. メールの送信に関する次の記述のうち誤っているものはどれか。
38. フレームワークに関する次の記述のうち誤っているものはどれか。
39. コマンドライン上で「php zipcode.php 1000004」を実行したときに、以下の実行結果結果を得たい。コードの【A】に入るものとして正しいものはどれか。

[ 実行結果 ]
1000004

[ コード ]
$zipcode = 【A】;
print $zipcode;
40. 文字列をutf-8で出力したい場合、コードの【A】に入るものとして正しいものはどれか。

$str = "草薙沙耶";
print 【A】($str, "utf-8");