トラック
/
PHP
PHP
/
演習
/
高校時代の恋人たち
高校時代の恋人たち

高校時代の恋人たち

学習演習

はじめに

文字列

文字列は、引用符で囲まれた一連の文字です。 シングルクォートとダブルクォートの両方が使えます。

<?php

$where = "Spain";
$what = 'rain';

文字列内での変数展開

ダブルクォートで囲んだ文字列では、スコープ内にある変数を参照すると、その値が文字列の中に挿入されます。

<?php

$answer = 42;
$expanded = "The answer to life, the universe, and everything is $answer"; 

文字エンコーディングのサポート

これまで、PHPの文字列関数はASCII文字しかサポートしておらず、現代のUnicodeエンコーディングには対応していませんでした。 ASCII文字はそれぞれ1バイトであるのに対し、Unicode文字は1〜4バイトの長さになることがあります。 Unicode文字列を安全に操作する必要がある場合は、従来の関数のマルチバイト版を参照してください。

<?php

$byte_length = strlen('😃'); // => 4
$string_length = mb_strlen('😃'); // => 1

説明

この演習では、高校生の恋人同士がSNSで愛を告白できるよう、二人のイニシャルをあしらったASCIIのハートを作ります。

     ******       ******
   **      **   **      **
 **         ** **         **
**            *            **
**                         **
**     J. K.  +  M. B.     **
 **                       **
   **                   **
     **               **
       **           **
         **       **
           **   **
             ***
              *

1. 名前の頭文字を取得する

HighSchoolSweetheart::firstLetter関数を実装します。 名前を受け取り、その頭文字を返します。 名前から不要な空白を取り除きます。

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->firstLetter("Jane");
# => "J"

2. 頭文字をイニシャルとして整形する

HighSchoolSweetheart::initial関数を実装します。 名前を受け取り、その頭文字を大文字にし、ピリオドを付けて返します。 前のステップで定義したHighSchoolSweetheart::first_letterを再利用してください。

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->initial("jane");
# => "J."

3. フルネームを名と姓に分割する

HighSchoolSweetheart::initials関数を実装します。 スペースで区切られた名と姓からなるフルネームを受け取り、イニシャルを返します。 前のステップで定義したHighSchoolSweetheart::initialを再利用してください。

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->initials("Jane Doe");
# => "J. D."

4. イニシャルをハートの中に入れる

HighSchoolSweetheart::pair関数を実装します。 2つのフルネームを受け取り、ASCIIのハートの中にイニシャルを入れて返します。 前のステップで定義したHighSchoolSweetheart::initialsを再利用してください。

<?php

$sweetheart = new HighSchoolSweetheart();
$sweetheart->pair("Blake Miller", "Riley Lewis")
# => """
#      ******       ******
#    **      **   **      **
#  **         ** **         **
# **            *            **
# **                         **
# **     B. M.  +  R. L.     **
#  **                       **
#    **                   **
#      **               **
#        **           **
#          **       **
#            **   **
#              ***
#               *
# """
GitHubで編集する リンクは新しいウィンドウまたはタブで開きます
PHP Exercism

高校時代の恋人たちを始める準備はできましたか?

Exercismに登録すれば、11個のコンセプト122個の演習、そして本物の人間によるメンタリングとともに、PHPを学んでマスターできます。すべて無料です。