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

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

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

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

Q&A

解決済

3回答

8926閲覧

PHPの読み込む順番について

atomatom

総合スコア17

PHP

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

0グッド

1クリップ

投稿2017/04/29 12:21

編集2017/04/29 14:02

初歩的な質問で申し訳ないのですが、プログラムは上から下に読み込まれますよね。たとえば以下のようなソースで

<?php echo $var;?> : : : : <?php $var="aaa";?>

この場合定義前にechoしているので当然エラーになると思うのですが、このような順番で書いてもechoする方法はあるのでしょうか?普通に書けばいいのですが、一部のプログラムでこういう書き方をせざるを得なくなりまして...。

すいません。他の質問にも書いたのですが、問題の全文を載せます。ツイッターカードのメタタグを使いたいのですが(画像部分は$imageを使い動的に変更)、PHP文の下に書くと読み込んでくれません。かといってheadのすぐ下に書くと$imageが定義されていないので画像urlが空白になります。いろいろ試したところwhile文より下にメタタグを配置すると読み込んでくれないらしいのですが、どうしたらいいでしょうか?$imageには画像のパスが入っています。

<head> <?php session_start(); include_once 'dbconnect.php'; if(!isset($_SESSION['user'])) { header("Location: index3.php"); } // ユーザーIDからユーザー名を取り出す $query = "SELECT * FROM user WHERE user_id=".$_SESSION['user'].""; $result = $mysqli->query($query); $result = $mysqli->query($query); // ユーザー情報の取り出し while ($row = $result->fetch_assoc()) { $username = $row['username']; $user_id = $row['user_id']; $email = $row['email']; $image = $row['image']; } // データベースの切断 $result->close(); ?> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:site" content="http://feed.littlestar.jp/??/index.php"> <meta name="twitter:creator" content=""> <meta name="twitter:title" content="Foo"> <meta name="twitter:description" content=""> <meta name="twitter:image" content="image/<?php echo $image;?>">

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

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

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

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

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

ockeghem

2017/04/29 12:30

最初の echo $var; では何を表示してほしいのでしょうか?
atomatom

2017/04/29 12:32

単純に文字列を表示したいです。
ockeghem

2017/04/29 12:45

上記の例で言えば、aaa を表示したいということでしょうか?
atomatom

2017/04/29 12:48

はい。そういうことになります。
guest

回答3

0

ベストアンサー

がると申します。
端的には

このような順番で書いてもechoする方法は

ない、と思います。

例えば、なのですが。

PHP

1<?php echo $var; /* 1 */?> 2: 3: 4<?php $var="aaa";?> 5: 6: 7<?php echo $var; /* 2 */?> 8: 9: 10<?php $var="ccc";?> 11

といったコードで、もしおっしゃるような「さかのぼっての記述」が可能な場合、1や2での出力が「どうなるのか?」といったところが、不明瞭になってしまうので。

恐らくですが、

一部のプログラムでこういう書き方をせざるを得なく

という状況に根本的な問題があるので、そちらをどうにかするなり、質問するなりしたほうが、よいかと思います。

投稿2017/04/29 12:49

編集2017/04/29 13:59
gallu

総合スコア506

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

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

s8_chu

2017/04/29 13:50

横から失礼します。 回答文に編集内容が反映されていないように見えますが、もう一度回答文を更新してみてはいかがでしょうか?
gallu

2017/04/29 14:00

をを、ありがとうございます!!!
guest

0

一部のプログラムでこういう書き方をせざるを得なくなり

そもそもそうせざるを得ない事態など、おそらくありえない。
あなたが無理だと勝手に思いこんでいるだけで、実はそうしなくても良い解決法が必ずあります。

だからソース全文あるいはそうせざるを得ないという根拠や具体的な理由を挙げたらいいでしょう。

投稿2017/04/29 13:40

zico_teratail

総合スコア907

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

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

0

良い悪い、要不要は別にして、関数にすればできると思いますよ。

php

1<?php echo abc(); ?> 2<?php $str = abc(); ?> 3<?php echo $str; ?> 4<?php 5function abc(){ 6 return "aaa"; 7} 8?>

abcを定義したのは最後ですが、echoは2つとも動作すると思います

投稿2017/04/29 14:02

hirohiro

総合スコア2068

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問