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

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

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

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

Q&A

解決済

1回答

178閲覧

phpの外部ファイル参照時の出力が思うようにいきません。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2017/08/12 13:39

PHPによる出力方法が大変です!!

下記**【nakami.php】【get.php】**では、なぜか緑の出力結果になります。
これを赤い結果になるようにしたいと思っています。

どう調べても方法がわからず、どうか、どうか教えてください。。
イメージ説明

上の画像はこのように書いています。
【nakami.php】

php

1<?php if ($class_zenbu == 'zenbu'){ 2echo "$class_zenbu";} 3?> 4<span class="zenbu"> 5全部その1<br> 6</span> 7<?php $class_zenbu=''; ?> 8 9<?php if ($class_ichibu1 == 'ichibu1'): ?> 10<span class="ichibu1"> 11一部その1<br> 12</span> 13<?php $class_ichibu1=''; ?> 14<?php endif; ?> 15 16<?php if ($class_zenbu == 'zenbu'){ 17echo "$class_zenbu";} 18?> 19<span class="zenbu"> 20全部その2<br> 21</span> 22<?php $class_zenbu=''; ?> 23 24<?php if ($class_ichibu2 == 'ichibu2'): ?> 25<span class="ichibu2"> 26一部その2<br> 27</span> 28<?php $class_ichibu2=''; ?> 29<?php endif; ?> 30 31<?php if ($class_zenbu == 'zenbu'){ 32echo "$class_zenbu";} 33?> 34<span class="zenbu"> 35全部その3<br> 36</span> 37<?php $class_zenbu=''; ?>

【get.php】

php

1<?php 2$class_ichibu1 = 'ichibu1'; 3include('nakami.php'); 4?> 5<br> 6<?php 7$class_ichibu2 = 'ichibu2'; 8include('nakami.php'); 9?>

きっとまとハズレな書き方でしょうけれど、一生懸命がんばったんです。笑

どうして**【get.php】**では「ichibu1」と「ichibu2」しか指定していないのに、「zenbu」の中身が出力され、緑の出力結果になるのか。。困っております。

上図の緑を出力結果を、赤いやつになるようにするには、いったいどう書けばよいのでしょうか?

ご指導よろしくお願い致します。<(_ _)>

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

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

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

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

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

guest

回答1

0

ベストアンサー

**get.phpで「一部1」「一部2」だけでなく「全部」が出る件 **

「全部」を表示する部分がif節の外に出ているので、$class_zenbu変数の内容に関係なく必ず表示されています。
「一部」の記法と同様に

PHP

1<?php if ($class_zenbu == 'zenbu'): ?> 2 <span class="zenbu"> 3 全部その1<br> 4 </span> 5<?php endif; ?> 6<?php $class_zenbu=''; ?>

とすべきでしょう。

nakami.phpで「一部1」「一部2」が出ない件

nakami.php単体で呼び出す場合、$class_ichibu1, $class_ichibu2が定義されていない為です。
nakami.phpの冒頭に以下のコードを付け加えて下さい。

PHP

1if (!isset($class_ichibu1) && !isset($class_ichibu2)){ 2 $class_ichibu1 = 'ichibu1'; 3 $class_ichibu2 = 'ichibu2'; 4}

そもそも、必ず「一部1」「一部2」を表示させるのであれば、条件分岐不要だと思います。
やりたいことを整理した上で書き直すことをおすすめします。

投稿2017/08/12 16:31

tsuemura

総合スコア663

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

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

退会済みユーザー

退会済みユーザー

2017/08/13 04:43

できました! ifっていうのを書かないととにかくダメ(?)なのかと思っておりました。 条件分岐という必要に応じて書くものなのですね。笑 ご指摘のとおり、ifとendifの部分を消してもやりたいことができてほっとしました。どうもありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問