|
|
|
| Знаю, что про Include написано много, опрсмотрел все темы, но не нашел ответа, нешто никто не встретился со следующей проблемой. Когда в часть кода вставленную с пмощью этой функции, передаются переменные???
<?php
//Получяем переменные.
$1 = $_POST['1'];
$2 = $_POST['2'];
$3 = $_POST['3'];
$4 = "Привет!";
// Подгружаем файл,
// содержащий переменную
// $form
include('script.php');
if ($1 > 0)
{
$4 = "Пока!";
echo $form;
}
else
{
//Операторы.
}
?>
|
Вот пример кода script.php
<?php
$form = "Привет - $4";
?>
|
Вопрос, почему в результате получается строка "Привет - Привет!", хотя условие $1 > 0 Выполняется? | |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 13:15)
| | Сделав
<?php
//Получяем переменные.
$1 = $_POST['1'];
$2 = $_POST['2'];
$3 = $_POST['3'];
$4 = "Привет!";
// Подгружаем файл,
// содержащий переменную
// $form
include('script.php');
if ($1 > 0)
{
$4 = "Пока!";
echo $form;
}
else
{
//Операторы.
}
?>
|
Вы, фактически, сделали:
<?php
//Получяем переменные.
$1 = $_POST['1'];
$2 = $_POST['2'];
$3 = $_POST['3'];
$4 = "Привет!";
$form = "Привет - $4"; // ТЕПЕРЬ $form - это "Привет - Привет!"
if ($1 > 0)
{
$4 = "Пока!";
echo $form;
}
else
{
//Операторы.
}
?>
|
| |
|
|
|
|
|
|
|
для: Shorr Kan
(20.04.2006 в 13:19)
| | Это я и сам понял, почему при дальнейшем вызове переменной $form , после измениения $4 значение этой переменной в $form не меняется??? как обойти такую ситуацию? Повторный вызов inciude не помогает. | |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 13:15)
| | Да при таком коде у вас вообще результаты любые могут быть. Переменные не могут начинаться с цифр. | |
|
|
|
|
|
|
|
для: Loki
(20.04.2006 в 13:24)
| | Прошу прошения, просто писать реальные переменные долго, и смысла нет. Переформулировав вопрос: Почему, если вызвать include до определения переменных, то использование их в загруженом файле не возможно? | |
|
|
|
|
|
|
|
для: Loki
(20.04.2006 в 13:24)
| | Так, что , никто не поможет? | |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 14:36)
| | Потому, что include() добавляет "код в код":
<?php
// этот скрипт будет включаться в другой
// script.php
echo $var;
?>
|
<?php
// а это самый главный скрипт
include("script.php");
$var = "текст";
?>
|
Это то же самое, как:
<?php
// а это самый главный скрипт
// этот скрипт будет включаться в другой
// script.php
echo $var;
$var = "текст";
?>
|
Выведется ошибка. | |
|
|
|
|
|
|
|
для: Саня
(20.04.2006 в 14:45)
| | Не спорю, но я то делаю так,
>
<?php
>// а это самый главный скрипт
>$var = "текст";
>
>include("script.php");
>?>
|
>Это то же самое, как:
>
<?php
>// а это самый главный скрипт
>
>// этот скрипт будет включаться в другой
>// script.php
>$var = "текст";
>
>echo $var;
>?>
|
| |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 14:36)
| | Конечно не возможно. Ты сам прочитай что написал: сначала грузится код инклюда выполняется, а потом после выполнения ты определяешь переменные, которые типа должны быть в инклюднутом файле.
Если у тебя register_global в on, то в инклюднутом файле эти переменные создадутся сами и на выходе будут иметь обработанное значение, но после нового их определения, ты снова присвоишь им другие значения. | |
|
|
|
|
|
|
|
для: XPraptor
(20.04.2006 в 14:48)
| | Так вот с этим -то и непонятки. Вставив текст скрипта с помощью инклуда, я потом вызываю переменную, которая в свою очередь использует другую переменную, которая уже изменилась, но эти изменения не учлись,почему? Разве это не то же самое что просто написать:
<?php
//Получяем переменные.
$1 = $_POST['1'];
$2 = $_POST['2'];
$3 = $_POST['3'];
$4 = "Привет!";
$form = "Привет - $4";
if ($1 > 0)
{
$4 = "Пока!";
echo $form;
}
else
{
//Операторы.
}
|
| |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 15:41)
| | 1. Имя переменной должно начинатся либо с буквы анг. алфавита либо с знака _.
2. Перед выводом переменной её нужно объявить, а не наоборот.
Роботоспобный код будет выглядеть так:
<?php
//Получяем переменные.
$a = $_POST['1'];
$b = $_POST['2'];
$c = $_POST['3'];
$d = "Привет!";
if ($a > 0)
{
$d = "Пока!";
echo "Привет - $d";
}
else
{
//Операторы.
}
?>
|
| |
|
|
|
|
|
|
|
для: JIEXA
(20.04.2006 в 16:49)
| | Спасибо, понял, но, почему тогда повтоорный инклуд не помогает? | |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 15:41)
| | Вы же сперва присваиваете $form значение с переменной $4 ... а только потом $4 приравниваете к чему-то другому. | |
|
|
|
|
|
|
|
для: Shorr Kan
(20.04.2006 в 17:19)
| | Скажите, а если мы в коде пишим переменную, например $heiio = "Привет всем читающим, и конкретно Вам $name". Предположим $name определено, то, при вызове $heiio все будет ОК. А как поступить, если в ходе выполнения скрипта $name поменялась, и необходимо вывести $heiio с этим новым значением??? | |
|
|
|
|
|
|
|
для: NickCo
(20.04.2006 в 17:29)
| | Сработает:
<?
$name="Вася";
$heiio="Привет всем читающим, и конкретно Вам $name";
print $heiio;
$name="другой Вася";
$heiio="Привет всем читающим, и конкретно Вам $name";
print $heiio;
?>
|
Не сработает:
<?
$name="Вася";
$heiio="Привет всем читающим, и конкретно Вам $name";
print $heiio;
$name="другой Вася";
print $heiio;
?>
|
| |
|
|
|