Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Видимость переменных

Сообщения:  [1-10]   [11-13] 

 
 автор: beng2   (20.05.2006 в 00:29)   письмо автору
 
   для: ec_stasis   (19.05.2006 в 23:22)
 

Спасибо

   
 
 автор: beng2   (20.05.2006 в 00:28)   письмо автору
 
   для: Artem S.   (19.05.2006 в 22:47)
 

.. и после подключения файла file.html (см. первый пост)

<ul>
    <li>a: <?=$a?></li>
    <li>b: <?=$b?></li>
    <!-- И т. д. -->
</ul>

мы получим "Undefined variable"

   
 
 автор: ec_stasis   (19.05.2006 в 23:22)   письмо автору
 
   для: beng2   (19.05.2006 в 22:27)
 

чтобы они были корректно обработаны, надо еще воспользоваться ф-ией extract(), т.е.:

<?php
$vars
['a'] = "a";
$vars['b'] = "b";
// и т. д.

paste_file("file.php"$vars);

function 
paste_file($file_name$vars)
{
    
extract($vars);
    include(
$file_name);
}
?> 

   
 
 автор: Artem S.   (19.05.2006 в 22:47)   письмо автору
 
   для: beng2   (19.05.2006 в 22:27)
 

Я пишу обычно так

<?php
$vars
['a'] = "a";
$vars['b'] = "b";
// и т. д.

paste_file("file.php"$vars);

function 
paste_file($file_name$vars)
{
    include(
$file_name);

?>

   
 
 автор: beng2   (19.05.2006 в 22:27)   письмо автору
 
   для: ec_stasis   (19.05.2006 в 22:13)
 

Можно пример кода? Как я понимаю, необходимо изменить текст и вызов функции paste_file, при этом инструкции <?=$имя_переменной?> в файле file.html будут корректно обработаны.

   
 
 автор: ec_stasis   (19.05.2006 в 22:13)   письмо автору
 
   для: beng2   (19.05.2006 в 21:36)
 

когда объявляешь функцию, не надо заботиться, сколько у нее должно быть аргументов (всегда будет один). а эти переменные записывать в массив.

   
 
 автор: beng2   (19.05.2006 в 21:36)   письмо автору
 
   для: ec_stasis   (19.05.2006 в 21:26)
 

Количество переменных заранее не известно (см. первый пост). Как может решить эту проблему передача массива я не понял.

   
 
 автор: ec_stasis   (19.05.2006 в 21:26)   письмо автору
 
   для: beng2   (19.05.2006 в 21:09)
 

тогда передавать эти переменные функции как аргументы. Если количество переменных неизвестно, тогда передавать массив.

   
 
 автор: beng2   (19.05.2006 в 21:09)   письмо автору
 
   для: ec_stasis   (19.05.2006 в 20:47)
 

Этот вариант не подходит, т. к. заранее не известно, какие переменные будут использоваться в файле

   
 
 автор: ec_stasis   (19.05.2006 в 20:47)   письмо автору
 
   для: beng2   (19.05.2006 в 20:34)
 


function paste_file($file_name)
{
    global $a, $b;
    include($file_name);

   

Сообщения:  [1-10]   [11-13] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования