Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Функции на Php (непонятки)

249
18 сентября 2005 года
DissDoc
639 / / 01.10.2004
У меня есть 3 файла. файл с именем mainlist.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 не работает (не работает когда нужно) В чем ошибка?
338
18 сентября 2005 года
chigevara
529 / / 29.09.2003
Цитата:
Originally posted by DissDoc
В чем ошибка?


Выводи html по людски, эхом. При объявлении функций никто не обещал тебе отрабатывать вставки html как часть вывода функции. По крайней мере в мануале я такой инфы не нашел.
Зри в Chapter 10. Basic syntax -> Escaping from HTML

249
18 сентября 2005 года
DissDoc
639 / / 01.10.2004
Цитата:
Originally posted by chigevara
Выводи html по людски, эхом. При объявлении функций никто не обещал тебе отрабатывать вставки html как часть вывода функции. По крайней мере в мануале я такой инфы не нашел.
Зри в Chapter 10. Basic syntax -> Escaping from HTML


Я делаю в этом плане все правильно! У меня проблема по ходу с самой функцией =))
Что касается твоего комментария http://php.rinet.ru/manual/ru/language.basic-syntax.php - читай в самом конце! То, как я написал скрипт - считается профессиональным стилем :P =)))))

338
18 сентября 2005 года
chigevara
529 / / 29.09.2003
Цитата:
Originally posted by DissDoc
Я делаю в этом плане все правильно! У меня проблема по ходу с самой функцией =))
Что касается твоего комментария http://php.rinet.ru/manual/ru/language.basic-syntax.php - читай в самом конце! То, как я написал скрипт - считается профессиональным стилем :P =)))))


Повторюсь - там нет и слова о том что это работает в описании функции.
Далее, все что пых видит вне тегов идет сразу в броузер - делай выводы.
Далее - профессиональный стиль, блин.
В test.php ты кого закрываешь скобкой? А кого то забываешь открыть...
асп тэги в пыхе - можно, но без претензий на профессионализм - потому что.
$a = MainList($d, $b, $c) расскажи мне, кого ты присваиваешь переменной $a, если в функции нет возврата значения?
А передача параметров по ссылке - это как? для особо изощренного мазохизма. :D Нужды в данном случае для этого не видно.

4.7K
19 сентября 2005 года
Extractor
151 / / 26.08.2005
Цитата:
Originally posted by chigevara
Далее - профессиональный стиль, блин.
В test.php ты кого закрываешь скобкой? А кого то забываешь открыть...
асп тэги в пыхе - можно, но без претензий на профессионализм - потому что.
$a = MainList($d, $b, $c) расскажи мне, кого ты присваиваешь переменной $a, если в функции нет возврата значения?
А передача параметров по ссылке - это как? для особо изощренного мазохизма. :D Нужды в данном случае для этого не видно.


Сто пудов согласен, совершенно не обоснованное применение указателей.... Я понял почему это называется "профессионализм" - потому как такой код обычный програмер с первого захода не прочитает :D
$a = MainList($d, $b, $c) - а это круто, функция нифига не возвращает....

299
19 сентября 2005 года
3D Bob
885 / / 18.04.2005
Да уж.... Глянул код...
Ноу коментс....
332
19 сентября 2005 года
Valiant
416 / / 27.09.2004
гы гы дык функция у тебя пустая ...
или я не прав ???
249
19 сентября 2005 года
DissDoc
639 / / 01.10.2004
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.
299
19 сентября 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by DissDoc
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.



Просто чтобы сделать то как ты хотел нужно было вот так.

Код:
<?
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>";
}
?>


Ну эт на мой взгялд тупой метод, с утечкой памяитю... да и вообще ф-ция использовать только для возврата значений, эт далеко не профессиональый стиль.
332
19 сентября 2005 года
Valiant
416 / / 27.09.2004
Цитата:
Originally posted by DissDoc
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.


объясни получше, а то не совсем понятно, что ты хочешь

338
20 сентября 2005 года
chigevara
529 / / 29.09.2003
Цитата:
Originally posted by DissDoc
А! Я разобрался! Спасибо, что помогли. А тогда как лучше функцию держать? Как я понял, через эхи, но это не помогает. Я просто перестроил код по другому.
Что касается например ссылок на переменные, то если их не ставить, переменные не изменяются.


Код:
function some_func($param){
$res = 'somestring';
//здесь работаем;
.
.
.
$res = 'some action`s result';
return $res;
}

//пошел код вызова
echo(some_func($with_some_param));


Вроде доступно объяснил.
Да, по поводу изменения переменных.
Если тебе ДЕЙСТВИТЕЛЬНО надо менять несколько переменных, то делай так:
Код:
function some_func(){
$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();
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог