PHP: чтение переменной сверху внизу - PullRequest
1 голос
/ 07 декабря 2009

Есть ли способ прочитать переменную сверху, которая определена где-то внизу. Вот пример такой ситуации:

<!--this image is somewhere on top of the page-->
<img src="/<?php print logoPath(); ?>" border="0" />

// this code is somewhere on bottom of the page
$logo_query = "select logo_path from table where id = $row->user_id";
$res_logo = mysql_query($logo_query) or die(mysql_error());
$row_logo = mysql_fetch_object($res_logo);
$logo_path = $row_logo->logo_path;

function logoPath()
{
    global $logo_path;
    return $logo_path;
}

Я пытался использовать эту функцию для возврата значения, но даже это, похоже, не работает.

Любое решение?

Спасибо

Ответы [ 3 ]

4 голосов
/ 07 декабря 2009

Нет, в PHP все инструкции выполняются последовательно, поэтому вы не можете прочитать переменную, которая еще не была определена. Вы должны переместить код, который устанавливает значение $logo_path, выше места, где вы вызываете функцию logoPath ().

В качестве альтернативы вы можете поместить код sql в функцию logoPath (), которая позволит вам иметь функцию, которая возвращает путь к логотипу ниже места, где вы вызываете функцию.

1 голос
/ 07 декабря 2009

Нет, но есть способ сделать это с помощью jquery:

<img id="image" src="" border="0" />

// this code is somewhere on bottom of the page
$logo_query = "select logo_path from table where id = $row->user_id";
$res_logo = mysql_query($logo_query) or die(mysql_error());
$row_logo = mysql_fetch_object($res_logo);
$logo_path = $row_logo->logo_path;

function logoPath()
{
        global $logo_path;
        echo "<script type='text/javascript'> $('#image').src('".$logo_path."');</script>";
}

Это немного глупо, но должно работать.

0 голосов
/ 30 июля 2015

Что вы можете сделать, это использовать тег Div и расположить его в верхней части страницы. Таким образом, код можно выполнить на кнопке, но результаты будут отображаться сверху.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...