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

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

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

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

Q&A

解決済

バーダンプの解釈について

yuic.sk12345
yuic.sk12345

総合スコア1

PHP

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

2回答

0グッド

1クリップ

337閲覧

投稿2022/10/10 03:23

PHPでカレンダー作成を勉強しています。

勉強のため、以下のサンプルコードを解釈しています。
その中で、ソースコードの最後に、3つのバーダンプを使用して、どのような出力を内部でされているのか、出力したところブラウザには以下の、コードが表示されました。
私の想定では、
「$week」であれば、月の1~12の数字のいずれが表示され。
「$youbi」であれば、月~日の文字のいずれが表示され。
るものと想定していました。

しかし、バーダンプ出力したところブラウザには以下の、コードが表示されました。

string(351) ""
array(0) {
}
int(70)

特に、(351) や、(70)がに何を意味し、なぜ、このような数字をソースコードの中で扱っているのか、ご教示いただけますでしょうか。

該当のソースコード

<?php // タイムゾーンを設定 calen_01 date_default_timezone_set('Asia/Tokyo'); // 前月・次月リンクが押された場合は、GETパラメーターから年月を取得 if (isset($_GET['ym'])) { $ym = $_GET['ym']; } else { // 今月の年月を表示 $ym = date('Y-m'); }; //タイムスタンプを作成し、フォーマットをチェックする $timestamp = strtotime($ym . '-01'); if ($timestamp === false) { $ym = date('Y-m'); $timestamp = strtotime($ym . '-01'); } //今日の日付フォーマット   $today = date('Y-m-j'); //カレンダーのタイトルを作成 $html_title = date('Y年n月' , $timestamp); //前月・次月の年月を取得する $prev = date('Y-m' , mktime(0, 0, 0, date('m' , $timestamp)-1 , 1, date('Y' , $timestamp))); $next = date('Y-m' , mktime(0, 0, 0, date('m' , $timestamp)+1 , 1, date('Y' , $timestamp))); //その月の日数を取得 $day_count = date('t' , $timestamp); //1日が何曜日か $youbi = date('W' , $timestamp); //カレンダー作成の準備 $weeks = []; $week = ''; //第1週目;空セルを追加する $week .= str_repeat('<td></td>', $youbi); for ($day = 1; $day <= $day_count; $day++, $youbi++); echo ('<pre>'); var_dump($week); var_dump($weeks); var_dump($youbi); echo ('</pre>'); ?>

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/10/10 22:36

こちらの質問が複数のユーザーから「過去に投稿した質問と同じ内容の質問」という指摘を受けました。

SurferOnWww

2022/10/10 03:33

質問は編集できるので前のスレッドを編集してください。無駄にスレッドを立てるのは閲覧者の迷惑になります。
m.ts10806

2022/10/10 03:58 編集

既に削除依頼されてしまっているようですが、今後は質問編集してご対応ください。

回答2

1

ウェブブラウザの View Source 機能で当該の HTML コードを表示させると以下の様になります。つまり、<td></td> の繰り返しがブラウザ上では「空白」として扱われているのです。

<pre>string(351) "<td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td>" array(0) { } int(70) </pre>

投稿2022/10/10 04:45

melian

総合スコア16444

m.ts10806👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

melian

2022/10/10 04:52

余談になりますが、php コマンドには "-S" オプションがあって、これは簡易 HTTP サーバ機能を提供するものです。デバッグ用途に適しているかと思いますので気が向いたら調べてみて下さい。

0

ベストアンサー

(351) や、(70)がに何を意味し

基本は桁数です。
配列の場合は要素数。
数値の場合は今回の場合は「70という整数値」。

なぜ、このような数字をソースコードの中で扱っているのか

何を聞きたいのか分からないですが、var_dump()自体、デバッグ用途以外で使うことがないので、変数の保持する情報が想定通りなのかを確認するため、開発者が必要と思われる情報を出力している仕様
ということになりますが、答えになっていますか?

投稿2022/10/10 03:57

編集2022/10/10 06:20
m.ts10806

総合スコア80040

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/10/10 22:21

こちらの回答が他のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

回答へのコメント

yuic.sk12345

2022/10/10 04:04

さっそくありがとうございます!! 今まで、勉強してきた中で、バーダンプを使用した場合、 以下のようなコートで、 var_dump($ym); var_dump($date); 以下のような出力ができたパターンしか知らなくて。。。 string(7) "2022-10" string(10) "2022-10-31" 上記のことから、()内は桁数。""内はその中身。といった対応関係が可視化できる、便利な関数と考えていました。 この質問にある、(351) や、(70)といった「桁数」しか表示されない。という表示の解釈の仕方がわからなくて。。。 例えば、「その変数には、(351) や、(70)桁までしか受け付けない」という意味の理解で大丈夫でしょうか?
melian

2022/10/10 05:03

int(70) は「整数値の70」という意味です。
otn

2022/10/10 05:10

> 上記のことから、()内は桁数。""内はその中身。といった対応関係が可視化できる、便利な関数と考えていました。 文字列についてはそれで合ってます。数値の場合は違いますが。 > 「桁数」しか表示されない。 それは勘違いです。出力をよく見ましょう。
m.ts10806

2022/10/10 06:13

melianさん、otnさん 補足ありがとうございます。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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