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

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

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

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

Q&A

解決済

2回答

627閲覧

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

yuic.sk12345

総合スコア6

PHP

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

0グッド

1クリップ

投稿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>'); ?>

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/10/10 03:33

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

2022/10/10 03:58 編集

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

回答2

0

ウェブブラウザの 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

総合スコア19618

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

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

melian

2022/10/10 04:52

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

0

ベストアンサー

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

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

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

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

投稿2022/10/10 03:57

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

総合スコア80765

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

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

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さん 補足ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問