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

Форум PHP

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

 

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

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

тема: Содержимое функции вставить в переменную

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

 
 автор: codexomega   (20.10.2005 в 20:22)   письмо автору
 
   для: Dead_Fenix   (20.10.2005 в 12:37)
 

>Там
>вместо echo везде надо ставить return?

Нет, return возвращает только конечный результат вашей функции.
Поэтому функция должна быть простой и выполнять только одно единственное действие, в противном случае создается множество функций.
Теперь скажем у вас функция которая только складывает 2 числа.

function sum(){
$number1 = 2;
$number2 = 4;
return ($number1 + $number2);
}

Дальше в коде у вас есть переменная в которую вы хотите вставить результат функциии сложения:

$resultat = sum();


return, в любой функции бывает только один единственный.

   
 
 автор: Dead_Fenix   (20.10.2005 в 12:37)   письмо автору
 
   для: codexomega   (19.10.2005 в 23:03)
 

Хм... похоже я просто так не разбирусь.
Вот выше я привел функция которую мне надо разобрать. Там вместо echo везде надо ставить return?
И как при помощи функций PHP из текста извлечь нужный отрезок?

   
 
 автор: cheops   (20.10.2005 в 00:41)   письмо автору
 
   для: Dead_Fenix   (19.10.2005 в 21:46)
 

Что из себя представляет более сложная функция?

   
 
 автор: codexomega   (19.10.2005 в 23:03)   письмо автору
 
   для: codexomega   (19.10.2005 в 22:22)
 

Здесь можно создать 2 переменные.
Одна перемeнная принимает полный текст из функции(return).
Потом идет обработка текста при помощи функций PHP - из полного текста извлекается нужный отрезок и помещается в другую переменную.

   
 
 автор: Dead_Fenix   (19.10.2005 в 22:26)   письмо автору
 
   для: codexomega   (19.10.2005 в 22:22)
 

А если в одном случае надо вывести полный текст из функции, а в переменную занести только часть текста...

   
 
 автор: codexomega   (19.10.2005 в 22:22)   письмо автору
 
   для: Dead_Fenix   (19.10.2005 в 13:05)
 

В любом случае надо указать какую информацию функция вам должна возвратить.
Ключевое слово return.

   
 
 автор: Dead_Fenix   (19.10.2005 в 21:46)   письмо автору
 
   для: cheops   (19.10.2005 в 14:24)
 

Спасибо.
И все же интересно, как действовать с более сложной функцией

   
 
 автор: cheops   (19.10.2005 в 14:24)   письмо автору
 
   для: Dead_Fenix   (19.10.2005 в 12:55)
 

Имеется ввиду вот что
<?php 
function summa() { 
   global 
$t
   
$k=@array_keys($t[all]); 
   for (
$i=0$i<count($k); $i++) { 
      
$id=$k[$i]; 
      
$summ+=$t[$id][kol]*$t[$id][cena]; 
      
$summ2+=$t[$id][kol]; 
   } 
      if(
$summ==0
      { 
      
$summ3="0"
      } 
      else 
      { 
      
$summ3=$summ+100
      } 
   return 
"<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена -  ".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ); 

?>

Тогда функцией можно будет оперировать как строкой
<?php
$msg 
=summa();
?>

   
 
 автор: Dead_Fenix   (19.10.2005 в 13:05)   письмо автору
 
   для: codexomega   (19.10.2005 в 06:28)
 

И еще, если функция более сложная и не все данные из нее мне нужны, как ее занести в переменную?
Например такая
<?php
function korzina() {
   global 
$t,$PHP_SELF,$SID;

   
$f=file("./shop2.txt") or die("файл не найден");
   
$ogl=explode("\\",$f[0]);

   echo 
"<form action=$PHP_SELF method=POST>".
        
"<input type=hidden name=SID value='$SID'>"
        
"<input type=hidden name=c value=kolvo>".
        
"<table border=0 cellpadding=3 cellspacing=1 bgcolor=#275CBD><tr><td><FONT size=-1 color=#FFFFFF><B>$ogl[1]</B></FONT></td></td><td><FONT size=-1 color=#FFFFFF><B>$ogl[3]</B></FONT></td>".
        
"<td><FONT size=-1 color=#FFFFFF><B>кол-во</B></FONT></td><td><FONT size=-1 color=#FFFFFF><B>команды</B></FONT></td></tr>";

   
$k=@array_keys($t[all]);
   for (
$i=0$i<count($k); $i++) {
      
$id=$k[$i];
      echo 
"<tr bgcolor=#FFFFFF><td><FONT size=-1>{$t[$id][name]}</FONT></td>".
           
"<td><FONT size=-1>{$t[$id][cena]}</FONT></td>".
           
"<td><input size=4 type=text name=v[$id] value={$t[$id][kol]}></td>".
           
"<td><a href=$PHP_SELF?c=del&id=$id&SID=$SID><FONT size=-1>удалить</FONT></a></td></tr>";
   }

   echo 
"</table><BR><input type=submit name=edit value='Внести изменения'> &nbsp; &nbsp;".
        
"<input type=submit name=zakaz value='Оформить заказ'></form>";
}
?>

   
 
 автор: Dead_Fenix   (19.10.2005 в 12:55)   письмо автору
 
   для: codexomega   (19.10.2005 в 06:28)
 

Строку занесите в переменную:

$my_string = "<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена -".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ); 

это прямо после слова echo?
Вставил, заработало, но при

$msg. =summa(); 

на странице распечатываются данные из summa(); а мне нужно что бы только заносилось в переменную.

   

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

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

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