Функции на Php (непонятки)
function MainList(&$border_color, &$bgcolor_fon1, &$bgcolor_fon2) {
?>
<table border="1" style="border-collapse: collapse" bordercolor='<?echo $border_color;?>' width="100%">
<tr>
<td width="28%" colspan="2"></td>
<td width="28%"></td>
<td width="29%" colspan="2"></td>
</tr>
<tr>
<td width="56%" colspan="3"></td>
<td width="29%" colspan="2"></td>
</tr>
<tr>
<td width="14%" rowspan="2"></td>
<td width="14%"></td>
<td width="42%" colspan="2" rowspan="2"></td>
<td width="15%"></td>
</tr>
<tr>
<td width="14%"></td>
<td width="15%"></td>
</tr>
</table>
<?
}
?>
Есть еще один файл с именем test.php который содержит вызов предыдущей функции
}
function MiddleFrame(&$stat_text, &$s)
?>
<table border="0" width="100%">
<tr>
<th>
<table border="1" style="border-collapse: collapse" bordercolor='<?echo $border_color;?>' width="100%">
<tr>
<th bgcolor='<?echo $bgcolor_fon1;?>' align="center">
<span style="font-weight: 400">
<font color=#ffffff size="2"><?echo $stat_text;?></font></th>
</span>
</tr>
<tr>
<th bgcolor='<?echo $bgcolor_fon2;?>' align="left">
//------------------------------------------
// Вот тут вызов переменной
<?print $s;?>
</th>
</tr>
</table>
</th>
</tr>
</table>
<?
}
?>
И наконец третий скрипт, который непосредственно вызывает функцию
$a = MainList($bla, $bla1, $bla2);
?>
<th valign="top" width="81%">
<?MiddleFrame($border_color, $bgcolor_fon1, $bgcolor_fon2, $stat_text, $a);?>
</th>
Проблема в том, что таблица, которую должна рисовать функция MainList рисуется, но рисуется не в таблице (которую рисует скрипт test.php), а перед ней! Т.е. получается так, что вначале выполняется функция MainList, а потом переменная $a не работает (не работает когда нужно) В чем ошибка?
В чем ошибка?
Выводи html по людски, эхом. При объявлении функций никто не обещал тебе отрабатывать вставки html как часть вывода функции. По крайней мере в мануале я такой инфы не нашел.
Зри в Chapter 10. Basic syntax -> Escaping from HTML
Выводи html по людски, эхом. При объявлении функций никто не обещал тебе отрабатывать вставки html как часть вывода функции. По крайней мере в мануале я такой инфы не нашел.
Зри в Chapter 10. Basic syntax -> Escaping from HTML
Я делаю в этом плане все правильно! У меня проблема по ходу с самой функцией =))
Что касается твоего комментария http://php.rinet.ru/manual/ru/language.basic-syntax.php - читай в самом конце! То, как я написал скрипт - считается профессиональным стилем :P =)))))
Я делаю в этом плане все правильно! У меня проблема по ходу с самой функцией =))
Что касается твоего комментария http://php.rinet.ru/manual/ru/language.basic-syntax.php - читай в самом конце! То, как я написал скрипт - считается профессиональным стилем :P =)))))
Повторюсь - там нет и слова о том что это работает в описании функции.
Далее, все что пых видит вне тегов идет сразу в броузер - делай выводы.
Далее - профессиональный стиль, блин.
В test.php ты кого закрываешь скобкой? А кого то забываешь открыть...
асп тэги в пыхе - можно, но без претензий на профессионализм - потому что.
$a = MainList($d, $b, $c) расскажи мне, кого ты присваиваешь переменной $a, если в функции нет возврата значения?
А передача параметров по ссылке - это как? для особо изощренного мазохизма. :D Нужды в данном случае для этого не видно.
Далее - профессиональный стиль, блин.
В test.php ты кого закрываешь скобкой? А кого то забываешь открыть...
асп тэги в пыхе - можно, но без претензий на профессионализм - потому что.
$a = MainList($d, $b, $c) расскажи мне, кого ты присваиваешь переменной $a, если в функции нет возврата значения?
А передача параметров по ссылке - это как? для особо изощренного мазохизма. :D Нужды в данном случае для этого не видно.
Сто пудов согласен, совершенно не обоснованное применение указателей.... Я понял почему это называется "профессионализм" - потому как такой код обычный програмер с первого захода не прочитает :D
$a = MainList($d, $b, $c) - а это круто, функция нифига не возвращает....
Ноу коментс....
или я не прав ???
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.
Просто чтобы сделать то как ты хотел нужно было вот так.
function MainList(&$border_color, &$bgcolor_fon1, &$bgcolor_fon2) {
return "
<table border=\"1\" style=\"border-collapse: collapse\" bordercolor=$border_color width=\"100%\">
<tr>
<td width=\"28%\" colspan=\"2\"></td>
<td width=\"28%\"></td>
<td width=\"29%\" colspan=\"2\"></td>
</tr>
<tr>
<td width=\"56%\" colspan=\"3\"></td>
<td width=\"29%\" colspan=\"2\"></td>
</tr>
<tr>
<td width=\"14%\" rowspan=\"2\"></td>
<td width=\"14%\"></td>
<td width=\"42%\" colspan="2" rowspan=\"2\"></td>
<td width=\"15%\"></td>
</tr>
<tr>
<td width=\"14%\"></td>
<td width=\"15%\"></td>
</tr>
</table>";
}
?>
Ну эт на мой взгялд тупой метод, с утечкой памяитю... да и вообще ф-ция использовать только для возврата значений, эт далеко не профессиональый стиль.
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.
объясни получше, а то не совсем понятно, что ты хочешь
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.
$res = 'somestring';
//здесь работаем;
.
.
.
$res = 'some action`s result';
return $res;
}
//пошел код вызова
echo(some_func($with_some_param));
Вроде доступно объяснил.
Да, по поводу изменения переменных.
Если тебе ДЕЙСТВИТЕЛЬНО надо менять несколько переменных, то делай так:
$res = array();
//some_actions
$res['a'] = 'blabla';
$res['b'] = 'another_blabla';
$res['c'] = 'blabla_again';
$res['d'] = 'blabla_forever';
$res['e'] = 'i_love_this_fucking_blabla!!!';
return $res;
}
//тут мы имеем переменные $a, $b, $c, $d, $e
.
.
.
//Тут мы вызываем функцию
extract(some_func());
//можем смотреть в переменные $a, $b, $c, $d, $e
//хотя конечно лучше посмотреть в мануал
//кстати можно и так
list($a, $b, $c, $d, $e) = some_func();