質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

4回答

6663閲覧

PHP ゾロ目 判定

Suzumi41

総合スコア19

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/03/01 04:59

前提・実現したいこと

現在以下のプログラムを作成しています。

ページにアクセスした時間の秒が

1:00だった場合は「ジャストタイム!!」
2:00を除くゾロ目だった場合は「ゾロ目!」
3:上記以外の場合は「外れ」

発生している問題・エラーメッセージ

2のゾロ目の判定が表現出来ません。
サイコロの判定などであれば、関数を増やして比較すればいい話ですが、
秒数のため、どのように比較すればいいのでしょうか。

該当のソースコード

php

1<?php 2$today = date("s"); 3 4?> 5<!DOCTYPE html> 6<html lang="ja"> 7<head> 8 <title>課題中級</title> 9</head> 10<body> 11 <p><?php 12 if($today === '00'){ 13 print 'ジャストタイム!'; 14 print 'アクセスした瞬間の秒は' . $today . 'でした'; 15 } else if($today !== '00' //&& 不明部分){ 16 print 'ゾロ目!'; 17 print 'アクセスした瞬間の秒は' . $today . 'でした'; 18 } else { 19 print '外れ'; 20 print 'アクセスした瞬間の秒は' . $today . 'でした'; 21 } 22 ?> 23 </p> 24 25</body> 26</html>

試したこと

else if($today !== '00' && )の&&のあとに00以外のゾロ目を表現すればいいと思うのですが、
試しに $today === $today と実行してみましたが
案の定、ゾロ目以外の秒数も含まれるためエラーとなります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

'11'から'99'までを比較すればいいんじゃないかと。たかだか9個ですぜ

投稿2019/03/01 05:04

y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/03/01 05:06

時刻とのことなので55まで。
yambejp

2019/03/01 05:06

秒をベースにしてるので11から55までですね
y_waiwai

2019/03/01 05:07

ああなるほど、経過時間じゃないのねw
Suzumi41

2019/03/01 05:26

はい、難しく考えすぎていました。。。 00の部分と同じ要領で考えればいい話でした。 有難うございます。
guest

0

他の回答のように11~55までのif文が理解しやすいと思いますが、もうひとつ理解しやすい方法としては、1文字目と2文字目が同じかどうかで判定することです。

PHP

1} else if(substr($today, 0, 1) == substr($today, 1, 1)){

投稿2019/03/01 05:17

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Suzumi41

2019/03/01 05:28 編集

substrについて調べた所、文字列の切り出しが出来るんですね。 これを使えば短く済むし、分かりやすいと思いました。 今後はこちらを利用していこうと思います。 有難うございました。
guest

0

}elseif(in_array($today,range(11,55,11))!==false){

投稿2019/03/01 05:06

yambejp

総合スコア114769

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Suzumi41

2019/03/01 05:26

ご回答有難うございます。 in_arrayやrangeについては知らなかったので これを機に調べて実行してみます。
guest

0

ベストアンサー

解決策はいくつもありますが、理解可能と思われる案で回答します。

php

1else if($today === '11' || $today === '22' || $today === '33' || $today === '44' || $today === '55') {

投稿2019/03/01 05:03

papinianus

総合スコア12705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

papinianus

2019/03/01 05:05

* else if を沢山やる * ↑をswitchにしてフォールスルーする * in_arrayにする * $today[0] == $today[1]とする など
Suzumi41

2019/03/01 05:25

今の私のレベルにあった一番分かりやすい回答を有難うございます。 00と同じ要領で考えればいい話でしたね。。。 解決致しました。 switchなどはまだ使い方を勉強していないので、調べて併せて実行してみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問