За последние 24 часа нас посетили 54982 программиста и 1682 робота. Сейчас ищут 1118 программистов ...

функции

Тема в разделе "PHP для новичков", создана пользователем smala, 5 июл 2011.

  1. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    сделал код, и решил его сделать функцией, но у меня почемуто невыходит, вот сам код

    PHP:
    1. <?php
    2. function sinonym($pizza){
    3. $pieces = explode(" ", $pizza);
    4. $is = count($pieces)-1;
    5. for ($i=0;$i<=$is;$i++){
    6. $chars = preg_split('//', $pieces[$i], -1, PREG_SPLIT_NO_EMPTY);
    7. $count = count($chars);
    8. $cup = $count - 3;
    9. $con2 = $count-1;
    10. $con1 = $count-2;
    11. if($count > 5){
    12. $na = $chars[0].$chars[1].$chars[2];
    13. $c = $chars[$con1].$chars[$con2].' ';
    14. return $na;
    15. $numbers = range(3, $cup);
    16. srand((float)microtime() * 1000000);
    17. shuffle($numbers);
    18. while (list(, $number) = each($numbers)) {
    19.      return $chars[$number];
    20. }
    21. return $c;
    22. }
    23. else {return $pieces[$i].' ';}
    24. }
    25. }
    26. $content = sinonym('вот такой простенький текст');
    27. echo $content;
    28. ?>
    выводит только вот а должно всю строчку выводить, только немного измененную, вот рабочая версия скрипта
    PHP:
    1. $pizza = sinonym('вот такой простенький текст');
    2. $pieces = explode(" ", $pizza);
    3. $is = count($pieces)-1;
    4. for ($i=0;$i<=$is;$i++){
    5. $chars = preg_split('//', $pieces[$i], -1, PREG_SPLIT_NO_EMPTY);
    6. $count = count($chars);
    7. $cup = $count - 3;
    8. $con2 = $count-1;
    9. $con1 = $count-2;
    10. if($count > 5){
    11. $na = $chars[0].$chars[1].$chars[2];
    12. $c = $chars[$con1].$chars[$con2].' ';
    13. return $na;
    14. $numbers = range(3, $cup);
    15. srand((float)microtime() * 1000000);
    16. shuffle($numbers);
    17. while (list(, $number) = each($numbers)) {
    18.      return $chars[$number];
    19. }
    20. return $c;
    21. }
    22. else {return $pieces[$i].' ';}
    23. }
    можно ли его функцией сделать???
     
  2. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    функция работает до первого return
     
  3. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    аа, понял, а как тогда мне три меременные в функции вывести в одну, там просто цыклами, вот если вместо ретурн оператор echo тогда все правильно выводит, а можно ли както в переменную этот результат вывода сохранить?)
     
  4. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    Можно используй конкатенацию строк.

    Пример
    PHP:
    1. <?
    2. $str = 'Welcome ';
    3. $str2 = 'to my page';
    4. $all = $str . $str2;
    5.  
    6.  
    7. #выведет Welcome to my page
    8. echo $all;
    9. ?>
     
  5. smala

    smala Активный пользователь

    С нами с:
    11 янв 2011
    Сообщения:
    137
    Симпатии:
    0
    я так пробывал, выводит не все значения, там же циклы, цикл в цикле
     
  6. ckjet

    ckjet Активный пользователь

    С нами с:
    6 апр 2011
    Сообщения:
    172
    Симпатии:
    2
    ну Вы продумайте как их соеденить