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

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

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

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

Q&A

解決済

2回答

5640閲覧

phpを入れ子にすると動かない

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

1クリップ

投稿2017/08/11 17:05

下記nakami.phpを入れ子にしても動くようにしたいです。

nakami.php

php

1<?php if ($class_zenbu == 'zenbu'): ?> 2<span class="zenbu"> 31 4</span> 5<?php endif; ?> 6<?php if ($class_hitotsu == 'hitotsu'): ?> 7<span class="hitotsu"> 82 9</span> 10<?php endif; ?> 11<?php if ($class_zenbu == 'zenbu'): ?> 12<span class="zenbu"> 133 14</span> 15<?php endif; ?>

現在は上のnakami.phpを参照して出力するという機能が実装されていて、参照は次の➀➁のパターンがあります。

【パターン➀】
2だけ表示したいパターンです。
getone.php

php

1<?php 2$class_hitotsu = 'hitotsu'; 3include('nakami.php'); 4?>

【パターン➁】
そして123を表示したいときはこうです。
getall.php

php

1<?php 2$class_hitotsu = 'hitotsu'; 3$class_zenbu = 'zenbu'; 4include('nakami.php'); 5?>

このパターン➀と➁でもほしい機能は実装されるのですが、今回は参照元のnakami.phpを入れ子にしたいと思っています。

が、次のように書いても何も表示されないのです。

nakami.php(入れ子版)

php

1<?php 2if ($class_zenbu == 'zenbu'){ 3echo ' 4<span class="zenbu"> 51 6</span>'; 7if ($class_hitotsu == 'hitotsu'){ 8echo '<span class="hitotsu"> 92 10</span>'; 11} 12if ($class_zenbu == 'zenbu'){ 13echo '<span class="zenbu"> 143 15</span>'; 16} 17}<?php endif; ?>

この書き方はどこがおかしいのでしょうか??

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

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

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

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

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

guest

回答2

0

ベストアンサー

PHP

1<?php if ($class_zenbu == 'zenbu'): ?> 2<span class="zenbu"> 31 4</span> 5<?php endif; ?> 6<?php if ($class_zenbu == 'zenbu' || $class_hitotsu == 'hitotsu'): ?> 7<span class="hitotsu"> 82 9</span> 10<?php endif; ?> 11<?php if ($class_zenbu == 'zenbu'): ?> 12<span class="zenbu"> 133 14</span> 15<?php endif; ?>

投稿2017/08/11 19:03

編集2017/08/11 19:35
Tak1016

総合スコア1408

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

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

退会済みユーザー

退会済みユーザー

2017/08/11 19:13 編集

むむむ? たとえば、そちらと <?php $class_hitotsu = 'hitotsu'; include('nakami.php'); ?> では、何も出力されないようすです。。
Tak1016

2017/08/11 19:14

$class_hitotsu1 はどこから出てきたんですか? $class_hitotsu = 'hitotsu' じゃないのですか?
Tak1016

2017/08/11 19:18

zenbuが有効だったら hitotsuの判定に入るように組んでるからでしょう。 $class_zenbu = 'zenbu'; $class_hitotsu = 'hitotsu'; include('nakami.php'); ってやったら表示されるんじゃないんですか?
退会済みユーザー

退会済みユーザー

2017/08/11 19:18

すみません、誤字でした。訂正しました。 仰るとおりなのですが、それでもやはり出力されないようですぞ?( ;∀;)
退会済みユーザー

退会済みユーザー

2017/08/11 19:19 編集

たしかに、 <?php $class_zenbu = 'zenbu'; $class_hitotsu = 'hitotsu'; include('nakami.php'); ?> こうすれば「123」が出力されますし、 または、 <?php $class_zenbu = 'zenbu'; include('nakami.php'); ?> こうすれば「13」が出力されます。 が、 <?php $class_hitotsu = 'hitotsu'; include('nakami.php'); ?> こうしたときに、「2」が出力してほしいのに、何も出力されないようなのです。。
Tak1016

2017/08/11 19:19

何も表示されないようにif文を組んでるからでしょう。
退会済みユーザー

退会済みユーザー

2017/08/11 19:21

な、なるほど!!笑 すると、、、 こちら、なんとか「2」だけバージョンも表示させるようなif文というのは、、ご教示いただけませんでしょうか…?<(_ _)>
Tak1016

2017/08/11 19:24

条件を整理してください zenbu と hitotsuの組み合わせが true, true のとき 1,2,3 true, false のとき 1, 3 false, true のとき 2 ということであってますか?
Tak1016

2017/08/11 19:35

回答を書き直しました。
Tak1016

2017/08/11 19:36

間違って投稿したので削除依頼だしました。削除してください。
退会済みユーザー

退会済みユーザー

2017/08/11 19:43

できた。。泣きそう。 できました!!!ありがとうございます!!!! なんですかこのこれ「||」は!?笑 どこで習えばいいんですかもう… 削除依頼の件ですけれど、どうやら私のところに来るものではない様子です。 ところでビットコインアドレスお持ちですか? お礼に500円分お送りいたします<(_ _)>
Tak1016

2017/08/11 19:49

削除は運営みたいですね。ビットコインいらないので大丈夫です。 || は「または」「or」ですね。 誕生日が1月または5月の人は割引します とか、その意味の「または」です。 PHP 論理演算子 でググってみてください。 ビットコインはいらないのでベストアンサーください。
退会済みユーザー

退会済みユーザー

2017/08/11 19:54

またはですか。ならばせめて論理記号と合わせてほしいですね…。 遅くなってすみません!ベストアンサー一丁お待ちどうさまです!
退会済みユーザー

退会済みユーザー

2017/08/11 20:02 編集

ちょ、ちょっと待ってください!笑 なんだか変なことになりました。 ■参照元ファイル <?php if ($class_zenbu == 'zenbu'): ?> <span class="zenbu"> 1 </span> <?php endif; ?> <?php if ($class_zenbu == 'zenbu' || $class_hitotsu2 == 'hitotsu2'): ?> <span class="hitotsu2"> 2 </span> <?php endif; ?> <?php if ($class_zenbu == 'zenbu'): ?> <span class="zenbu"> 3 </span> <?php endif; ?> <?php if ($class_zenbu == 'zenbu' || $class_hitotsu4 == 'hitotsu4'): ?> <span class="hitotsu4"> 4 </span> <?php endif; ?> <?php if ($class_zenbu == 'zenbu'): ?> <span class="zenbu"> 5 </span> <?php endif; ?> ■出力ファイル <?php $class_hitotsu2 = 'hitotsu2'; include('nakami.php'); ?> <?php $class_hitotsu4 = 'hitotsu4'; include('nakami.php'); ?> ■出力結果 224 ↑ 見てください。出力結果が、なぜか「224」と言う風に「2」が二つあるんです??? 「24」と出力する予定だったのですが。。
Tak1016

2017/08/11 20:13

hitotsu4を入れたときにはhitotsu2も有効だからですね。
Tak1016

2017/08/11 20:14

$class_なんちゃらっていう変数は一つにした方がいいですよ
退会済みユーザー

退会済みユーザー

2017/08/12 05:04 編集

初期化したらできました。お騒がせしました!ありがとうございます!
Tak1016

2017/08/12 05:09

> 論理記号と合わせてほしい 論理記号ってなんのことだかわからないですが かつ && または|| は論理演算子としては他の言語でも使われてますしすごい普通ですよ。 数学の論理記号∪のことですかね。 プログラム言語の予約語は普通はASCII文字だけを使うので数学の記号はプログラムでは使えないです。
guest

0

ここが文法的におかしいです。削除してみてください。

PHP

1<?php endif; ?>

投稿2017/08/11 17:09

kei344

総合スコア69364

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

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

退会済みユーザー

退会済みユーザー

2017/08/11 17:20

ありがとうございます! あれを削除し、あれを追加し、そんなことを70通りくらい試したのですが、ダメなのです。。(´;ω;`)ブワッ
退会済みユーザー

退会済みユーザー

2017/08/11 19:17

その書き方ですと、「現在は上のnakami.phpを参照して出力するという機能」が動いてくれなくなってしまうのです。 たしかに、 <?php $class_zenbu = 'zenbu'; $class_hitotsu = 'hitotsu'; include('nakami.php'); ?> こうすれば「123」が出力されますし、 または、 <?php $class_zenbu = 'zenbu'; include('nakami.php'); ?> こうすれば「13」が出力されます。 が、 <?php $class_hitotsu = 'hitotsu'; include('nakami.php'); ?> こうしたときに、何も出力されないようなのです。。
退会済みユーザー

退会済みユーザー

2017/08/11 19:55

ifの書き方が悪かったみたいです。 いつも正解をくださるのに活かせなくてすみません。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問