no message
This commit is contained in:
71
Question14-AdvancedInheritance/common/CreditCardPayment.php
Normal file
71
Question14-AdvancedInheritance/common/CreditCardPayment.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace Common;
|
||||
|
||||
require_once __DIR__ . '/PaymentInterface.php';
|
||||
|
||||
/**
|
||||
* クレジットカード決済を行うクラス
|
||||
*/
|
||||
class CreditCardPayment implements PaymentInterface
|
||||
{
|
||||
/** @var string カード番号 */
|
||||
private $cardNumber;
|
||||
|
||||
/** @var string カード名義人 */
|
||||
private $cardHolder;
|
||||
|
||||
/**
|
||||
* コンストラクタ
|
||||
*
|
||||
* @param string $cardNumber カード番号
|
||||
* @param string $cardHolder カード名義人
|
||||
*/
|
||||
public function __construct($cardNumber, $cardHolder)
|
||||
{
|
||||
// TODO: カード番号とカード名義人をプロパティに設定してください
|
||||
}
|
||||
|
||||
/**
|
||||
* クレジットカードで決済を実行する
|
||||
*
|
||||
* @param int $amount 決済金額(円)
|
||||
* @return bool 決済が成功したかどうか
|
||||
*/
|
||||
public function pay($amount)
|
||||
{
|
||||
// TODO: 以下の情報を表示して、最後に true を返してください
|
||||
// - "💳 クレジットカード決済処理"
|
||||
// - "カード番号: " に続けてマスキングされたカード番号(maskCardNumber メソッドを使用)
|
||||
// - "名義人: " に続けてカード名義人
|
||||
// - "決済金額: ¥" に続けて金額をカンマ区切りで表示(number_format 関数を使用)
|
||||
// - "決済が完了しました。"
|
||||
// ※各行の最後に <br> を付けること
|
||||
}
|
||||
|
||||
/**
|
||||
* 決済方法の名前を取得する
|
||||
*
|
||||
* @return string 決済方法名
|
||||
*/
|
||||
public function getPaymentMethodName()
|
||||
{
|
||||
// TODO: "クレジットカード" という文字列を返してください
|
||||
}
|
||||
|
||||
/**
|
||||
* カード番号をマスキングする(セキュリティのため)
|
||||
*
|
||||
* @param string $cardNumber カード番号
|
||||
* @return string マスキングされたカード番号
|
||||
*/
|
||||
private function maskCardNumber($cardNumber)
|
||||
{
|
||||
// TODO: カード番号を「****-****-****-最後の4桁」の形式でマスキングしてください
|
||||
// ヒント:
|
||||
// 1. explode('-', $cardNumber) でカード番号を '-' で分割して配列にする
|
||||
// 2. 配列の要素数が4つの場合、最後の要素($parts[3])以外を「****」に置き換える
|
||||
// 3. "****-****-****-" と最後の4桁を結合して返す
|
||||
// 4. 配列の要素数が4つでない場合は "****-****-****-****" を返す
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user