Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Как вставить РЕЗУЛЬТАТ выполнения функции в переменную?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: $tx = "while..."
mikpankov
Отправлено: 09 Декабря, 2010 - 00:34:38
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Задача:
вывести такой список (в последствии фамилии заменю на urlы).

А
Александр Петрович
Антон Дмитриевич
И т.д.

Пишу такой код:

PHP:
скопировать код в буфер обмена
  1. $arr = array('А'=>"", "Александр"=>"Петрович", "Антон"=>"Дмитриевич");
  2.  
  3. ksort($arr);
  4. reset($arr);
  5.  
  6.   $tx = "while (list($val, $key) = each($arr))
  7.     {
  8.     print ($key);
  9.     print ($val);
  10.     };
  11.   ";
  12.  
  13. require "shablon.php";
  14.  


Результат вывода
while (list(, ) = each(Array)) { print (); print (); };

В коде шаблона такая строка:

(Отредактировано автором: 09 Декабря, 2010 - 00:42:26)

 
 Top
CenapaTop
Отправлено: 09 Декабря, 2010 - 06:48:21
Post Id



Частый гость


Покинул форум
Сообщений всего: 166
Дата рег-ции: Авг. 2009  


Помог: 1 раз(а)




eval
 
 Top
OrmaJever Модератор
Отправлено: 09 Декабря, 2010 - 12:35:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




mikpankov а какже foreach ???
PHP:
скопировать код в буфер обмена
  1. $arr = array('А'=>"", "Александр"=>"Петрович", "Антон"=>"Дмитриевич");
  2.  
  3.   foreach($arr as $key => $value)
  4.     {
  5.     echo $key.$value.'<br>';
  6.     };
  7.  
  8. require "shablon.php";

(Отредактировано автором: 09 Декабря, 2010 - 12:36:20)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
JustUserR
Отправлено: 09 Декабря, 2010 - 13:35:18
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




mikpankov пишет:
В коде шаблона такая строка
Для осуществления выполнения логческих и программных компонентов загружаемых из шаблонного файла целесообразно проводиь предварительную проверку их синтаксической корректности и контроля отсутствия перехвата потока управления - для этих целей возможно испоользование функций категории http://php.su/functions/?cat=runkit по динамической интерпретации PHP-кода


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
mikpankov
Отправлено: 09 Декабря, 2010 - 19:42:21
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




OrmaJever пишет:
#
PHP:
скопировать код в буфер обмена
  1. $arr = array('А'=>"", "Александр"=>"Петрович", "Антон"=>"Дмитриевич");
  2.  
  3.   foreach($arr as $key => $value)
  4.  
  5.     {
  6.  
  7.     echo $key.$value.'<br>';
  8.  
  9.     };
  10. require "shablon.php";


Вот это даёт такую же ерунду, как и в первом случае
PHP:
скопировать код в буфер обмена
  1. $tx = "foreach($arr as $key => $value)
  2.  
  3.          {
  4.            echo $key.$value.'<br>';
  5.  
  6.         };
  7. ";


Буду пробовать eval

(Отредактировано автором: 09 Декабря, 2010 - 19:52:26)

 
 Top
Реф
Отправлено: 09 Декабря, 2010 - 20:03:40
Post Id



Частый гость


Покинул форум
Сообщений всего: 159
Дата рег-ции: Июль 2010  
Откуда: Реутов, Россия


Помог: 0 раз(а)





эквивалентна

$tx содержит строку, которая и выводится.

PHP:
скопировать код в буфер обмена
  1. $arr = array('А'=>"", "Александр"=>"Петрович", "Антон"=>"Дмитриевич");
  2.  
  3. ksort($arr);
  4.  
  5.   foreach ($arr as $key => $value)
  6.      $tx .= $key . ' ' . $value;
  7.  
  8. echo $tx;


Поясните зачем нужен отдельный файл для вывода $tx?

(Отредактировано автором: 09 Декабря, 2010 - 20:06:14)



-----
Думать надо головой, а не головкой!
 
 Top
mikpankov
Отправлено: 09 Декабря, 2010 - 20:07:49
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Реф пишет:



Поясните зачем нужен отдельный файл для вывода $tx?


Я знаю, что
Эквивалентно
Просто пишу теперь только сокращённо. Но всё, что находится в $tx="..."
Всегда успешно работало, до попытки вставить результат вышеозначенной функции.

У меня есть файл шаблона shablon.php В нём находится весь дизайн сайта, а внутреннее содержимое находится на отдельных страницах, к которым подключён шаблон.
Для того, чтобы не городить весь дизайн на каждой странице.
(Добавление)
CenapaTop пишет:
eval

И куда же вставлять eval?
Страница шаблона вся на html написана.

(Отредактировано автором: 09 Декабря, 2010 - 20:11:57)

 
 Top
JustUserR
Отправлено: 10 Декабря, 2010 - 13:08:17
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




mikpankov пишет:
И куда же вставлять eval?Страница шаблона вся на html написана.
Для осуществления выполнения полный файлов PHP-скриптов включающих определения пользовательского HTML-документа и исполняемых блоков средствами использования функции eval - необходимо обеспечить перевод текущего уровня вложенной интерперации на представления HTML-кода что может быть реализовано в виде конструкции eval("?>$text<?php") в котором в качестве информационного поля $text используется исходный текст целевого PHP-скрипта


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
mikpankov
Отправлено: 10 Декабря, 2010 - 15:06:04
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Реф пишет:

PHP:
скопировать код в буфер обмена
  1.  foreach ($arr as $key => $value)
  2.  
  3.      $tx .= $key . ' ' . $value;



Вот именно это мне и было нужно! Спасибо!
Выводится список замечательно, но почему-то вверху страницы пишет
Notice: Undefined variable: tx in ...stranica_s_funkciei.html on line 30
На 30-й строке как раз и находится
Подскажите, где прочитать про эти точки. Не совсем понимаю, как они применяются.

(Отредактировано автором: 10 Декабря, 2010 - 16:01:56)

 
 Top
Мелкий Супермодератор
Отправлено: 10 Декабря, 2010 - 16:09:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




mikpankov пишет:
Notice: Undefined variable: tx in ...stranica_s_funkciei.html on line 30

Обращение к неинициализированной переменной.
перед циклом поставьте $tx = ''; и будет инициализированная.

mikpankov пишет:
Подскажите, где прочитать про эти точки. Не совсем понимаю, как они применяются.

http://php.su/learnphp/datatypes/?string2
"конкатенация строк"
Говоря простым языком - склеивание строк из нескольких кусочков в одну, но большую.


-----
PostgreSQL DBA
 
 Top
mikpankov
Отправлено: 10 Декабря, 2010 - 16:14:22
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Спасибо всем! Работает!
PHP:
скопировать код в буфер обмена
  1. ksort($arr);
  2. $tx="$Данные, которые не нужно зацикливать";
  3.  foreach ($arr as $key => $value)
  4.      $tx .= "<a href='" . $value . "'>" . $key . "</a><br><br>";
  5.  


Теперь такой вопрос по тому же списку.
В списке есть Буквы. Как эти буквы сделать другого цвета и жирности?
Они расположены в коде массива
PHP:
скопировать код в буфер обмена
  1. array ('А'=>"", 'Александр' => 'Aleks.html', 'Б'=>'')

(Отредактировано автором: 10 Декабря, 2010 - 17:07:12)

 
 Top
Uchkuma
Отправлено: 10 Декабря, 2010 - 16:45:41
Post Id



Участник


Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010  
Откуда: Киров


Помог: 6 раз(а)




 
 Top
mikpankov
Отправлено: 10 Декабря, 2010 - 16:47:11
Post Id


Новичок


Покинул форум
Сообщений всего: 43
Дата рег-ции: Дек. 2010  


Помог: 0 раз(а)




Uchkuma пишет:

Спасибо, я разобрался) именно ksort для сортировки и работает)
Просто из-за прежних ошибок функция ksort не работала Радость

(Отредактировано автором: 10 Декабря, 2010 - 16:48:29)

 
 Top
JustUserR
Отправлено: 11 Декабря, 2010 - 12:31:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




mikpankov пишет:
Подскажите, где прочитать про эти точки. Не совсем понимаю, как они применяются.
Использования языка PHP предполагает хранение нформационных полей в переменных для которых не обеспечивается фиксация некоторого типа данных - в то время как она осуществлеятся на основе контекста применения данного выражения в соответствующий функциях или операциях - в частности применение конструкции <точка> обеспечвает приведение ее операнов к строковому виду посредством native-преобразования или вызова функциональност toString и их последующей конкатенации


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB