Edited at

PHPアルゴリズム練習問題 (解答)

More than 1 year has passed since last update.


この記事はこちらのの問題の解答です。



PHPアルゴリズム問題


○○.php

<?php

class Tweet {
static $tweets = array();

function __construct($name, $post) {
$this->name = $name;
$this->post = $post;
}

static function input_tweet() {
echo "名前を入力してください\n";
$name = trim(fgets(STDIN));
echo "投稿内容を入力してください\n";
$post = trim(fgets(STDIN));

$tweet = new Tweet($name, $post);
Tweet::$tweets[] = $tweet;

echo "入力が完了しました\n";
}

static function read_tweet() {
if (empty(Tweet::$tweets)) {
echo "また投稿情報が登録されていません\n";
return;
} else {
$line = "---------------------------\n";
echo "投稿者名: 投稿内容\n";
echo $line;
foreach (Tweet::$tweets as $tweet) {
echo "$tweet->name : " . $tweet->post . "\n";
}
echo $line;
}
}

static function destroy_tweet() {
if (empty(Tweet::$tweets)) {
echo "また投稿情報が登録されていません\n";
return;
}

while (true) {
$num = 1;
echo "削除したいツイートを選択してください\n";
foreach (Tweet::$tweets as $tweet) {
echo "[$num] :" . $tweet->name . "\n";
$num += 1;
}

$input = trim(fgets(STDIN));

if ($input <= count(Tweet::$tweets) && $input > 0) {
unset(Tweet::$tweets[$input - 1]);
Tweet::$tweets = array_values(Tweet::$tweets);

echo "削除が完了しました。\n";
break;
} else {
Tweet::exeption();
}
}
}

static function end_program() {
echo "ご利用ありがとうございました。\n";
exit;
}

static function exeption() {
echo "入力値が無効です。\n";
echo "もう一度入力してください。\n";
}
}

while(true) {
echo "処理を選択してください\n";

echo "[0] : 投稿情報の投稿\n";
echo "[1] : 投稿された情報の閲覧\n";
echo "[2] : 投稿情報の削除\n";
echo "[3] : アプリケーションの終了\n";
$input = trim(fgets(STDIN));

if ($input == 0) {
TWeet::input_tweet();
} elseif ($input == 1) {
Tweet::read_tweet();
} elseif ($input == 2) {
Tweet::destroy_tweet();
} elseif ($input == 3) {
Tweet::end_program();
} else {
Tweet::exeption();
}
}

?>