|
|
|
| Вообщем имеется некая функция summa(), она выводит некие данные. Мне нужно что бы эти данные записывались в некую переменную, например $msg. Пробовал $msg.=summa(); не вышло :(
<?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;
}
echo "<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена - ".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ);
}
?>
|
| |
|
|
|
|
|
|
|
для: Dead_Fenix
(19.10.2005 в 00:57)
| | Функция должна возвращать результат(return).
Только потом можно использовать:
Где, summa возвращает строку:
"<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена -".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ);
|
Строку занесите в переменную:
$my_string = "<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена -".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ);
|
Потом так, последняя строчка вашей функции:
| |
|
|
|
|
|
|
|
для: codexomega
(19.10.2005 в 06:28)
| | Строку занесите в переменную:
$my_string = "<center>Корзина: наименований товаров - $i (в кол-ве $summ2 шт), цена -".sprintf("%.0f руб.<br>Итого к оплате: $summ3 руб.",$summ);
|
это прямо после слова echo?
Вставил, заработало, но при
на странице распечатываются данные из summa(); а мне нужно что бы только заносилось в переменную. | |
|
|
|
|
|
|
|
для: 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);
}
?>
|
Тогда функцией можно будет оперировать как строкой
| |
|
|
|
|
|
|
|
для: cheops
(19.10.2005 в 14:24)
| | Спасибо.
И все же интересно, как действовать с более сложной функцией | |
|
|
|
|
|
|
|
для: Dead_Fenix
(19.10.2005 в 21:46)
| | Что из себя представляет более сложная функция? | |
|
|
|
|
|
|
|
для: 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='Внести изменения'> ".
"<input type=submit name=zakaz value='Оформить заказ'></form>";
}
?>
|
| |
|
|
|
|
|
|
|
для: Dead_Fenix
(19.10.2005 в 13:05)
| | В любом случае надо указать какую информацию функция вам должна возвратить.
Ключевое слово return. | |
|
|
|
|
|
|
|
для: codexomega
(19.10.2005 в 22:22)
| | А если в одном случае надо вывести полный текст из функции, а в переменную занести только часть текста... | |
|
|
|
|
|
|
|
для: codexomega
(19.10.2005 в 22:22)
| | Здесь можно создать 2 переменные.
Одна перемeнная принимает полный текст из функции(return).
Потом идет обработка текста при помощи функций PHP - из полного текста извлекается нужный отрезок и помещается в другую переменную. | |
|
|
|
|
|
|
|
для: codexomega
(19.10.2005 в 23:03)
| | Хм... похоже я просто так не разбирусь.
Вот выше я привел функция которую мне надо разобрать. Там вместо echo везде надо ставить return?
И как при помощи функций PHP из текста извлечь нужный отрезок? | |
|
|
|
|
|
|
|
для: Dead_Fenix
(20.10.2005 в 12:37)
| | >Там
>вместо echo везде надо ставить return?
Нет, return возвращает только конечный результат вашей функции.
Поэтому функция должна быть простой и выполнять только одно единственное действие, в противном случае создается множество функций.
Теперь скажем у вас функция которая только складывает 2 числа.
function sum(){
$number1 = 2;
$number2 = 4;
return ($number1 + $number2);
}
|
Дальше в коде у вас есть переменная в которую вы хотите вставить результат функциии сложения:
return, в любой функции бывает только один единственный. | |
|
|
|