Рекурсивная функция

Купить VPN
Профессиональная разработка сайта
БИРЖА РЕКЛАМЫ С ПРЯМЫМИ ССЫЛКАМИ [+]
Печать / RSS
1


Землянин
0
Шалом ребзя !
Подскажите на какой строке я допустил ошибку в этом коде ? По идее все ок и в конце функция должна возвращать строку "Текст" и вывести ее, однако этого не происходит...
function one($a) {
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
one($a-1); }
else {
return '<h5>Текст</h5>'; }
}
echo one(2);
Изменил: Суицидник (31.10.2016 / 15:29)

Господин ПЖ
0
Аллах акбар!
Насколько я знаю функция не может одновременно и вернуть и вывести результат
Может я не прав, в доках к сожалению не смог найти

<?php
function one($a)
{
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
one($a-1);
} else {
echo '<h5>Текст</h5>';
}
}

echo one(5);

Оранжевые штаны
0
нет не должна она возвращать строку "Текст"

Добавлено через 00:48 сек.
чейта не может? return не будет работать с echo? )

Добавлено через 06:35 сек.
А не работает у автора по той же причине, по которой не будет работать вот этот код:
function a(){
return 'Test';
}

function b(){
a();
}

echo b();

Господин ПЖ
0
Башка, ага все правильно, поэтому надо так

function one($a)
{
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
echo one($a-1);
} else {
return '<h5>Текст</h5>';
}
}

echo one(5);

Оранжевые штаны
0
Ну или так:
    function one($a)
{
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
return one($a-1);
} else {
return '<h5>Текст</h5>';
}
}

echo one(5);
раз уж вызов через echo

Землянин
0
Vantuz, странно, но у меня все заработало когда я убрал else...
function one($a) {
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
one($a-1);
}
return '<h5>Текст !</h5>';
}
echo one(2);

Землянин
0
Ну, мне нужно "постоянное" возвращаемое значение функцией, а не одно значение из двух предложенных вариантов условия if ... else (как в этом коде):

 function one($a)
{
if ($a > 0) {
echo '<h6>'.$a.'</h6>';
return one($a-1);
} else {
return '<h5>Текст</h5>';
}
}

echo one(5);

Оранжевые штаны
0
Зачем тебе вообще рекурсия?

Землянин
0
Башка, есть папка с html страничками. Ну, а мне надо из каждого .html файла вытащить 2 строчки Content-Location: (полный путь к странице).

Content-Type: multipart/related; start=; boundary=----------fiaS3lGu8TfpYgfSAFk3eT
Content-Location: http://seo-ng.net/seo-knigi/more/jenciklopedija-poiskovogo-prodvizhenija.html
Subject: =?utf-8?Q?=D0=9A=D0=BD=D0=B8=D0=B3=D0=B0=20=D0=AD=D0=BD=D1=86=D0=B8=D0=BA=D0=BB=D0=BE=D0=BF=D0=B5=D0=B4=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B4=D0=B2=D0=B8=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F.=20=D0=A1=D0=BA=D0=B0=D1=87=D0=B0=D1=82=D1=8C=20=D0=BA=D0=BD=D0=B8=D0=B3=D1=83=20=D0=B1=D0=B5=D1=81=D0=BF=D0=BB=D0=B0=D1=82=D0=BD=D0=BE=20"=D0=AD=D0=BD=D1=86=D0=B8=D0=BA=D0=BB=D0=BE=D0=BF=D0=B5=D0=B4=D0=B8=D1=8F=20=D0=BF=D0=BE=D0=B8=D1=81=D0=BA=D0=BE=D0=B2=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D0=B4=D0=B2=D0=B8=D0=B6=D0=B5=D0=BD=D0=B8=D1=8F"?=
MIME-Version: 1.0

------------fiaS3lGu8TfpYgfSAFk3eT
Content-Disposition: inline; filename=jenciklopedija-poiskovogo-prodvizhenija.html
Content-Type: text/html; charset=utf-8; name=jenciklopedija-poiskovogo-prodvizhenija.html
Content-ID:
Content-Location: http://seo-ng.net/seo-knigi/more/jenciklopedija-poiskovogo-prodvizhenija.html

Вот я и методом рекурсии хочу вытащить и первую строчку Content-Location и вторую. Так как в некоторых страницах полный путь к странице в первой строчке Content-Location отличается от второго Content-Location
Изменил: Суицидник (01.11.2016 / 01:28)

Оранжевые штаны
0
Возможно это тебе поможет:
 function one($a){
if ($a > 0) {
return '<h6>' . $a . '</h6>' . one($a - 1);
} else {
return '<h5>Текст</h5>';
}
}

echo one(5);

Но я бы не использовал никаких рекурсий, сделал бы в лоб.
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск