пользовательские функции , зачем они нужны?

Тема в разделе "Как сделать...", создана пользователем асс, 20 мар 2014.

  1. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    Добрый день всем кто заскочил в тему.

    Помогите понять зачем пользоваться функциями?

    На пример какой смысл в такой функции
    Код:
    <?
    function showString($str)
    {
        return $str;
    }
    $string =file_get_contents('yandex.ru');
    echo showString($string") .'<br>';
    ?>

    почему нельзя просто написать
    Код:
    <?
    $string =file_get_contents('yandex.ru');
    echo $string .'<br>';
    ?>

    Вродьбы и не тупой, но хоть убей не могу понять выгоду функций.
    Не могу понять логику работы.
    Научите пожалуйста меня ими пользоваться, понять как ими пользоваться и создавать.

    Именно пользовательские функции.

    Знаю что это позор, 5 лет програмирую на PHP и не использую функции- потому что не умею, все по старинке циклы переменные и тд.
     
  2. The_Wolf

    The_Wolf

    Регистр.:
    21 окт 2013
    Сообщения:
    339
    Симпатии:
    189
    :lol: впервые такую слышу . ну я начал программировать 7-8мес. назад и я тоже новичок но знаю что такое функции и использую .
    для меня функции это сокращение кода .
    Например : вы хотите сделать пагинацию и вы пишите код на каждый файл ?
     
  3. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221

    нет, у меня она лежит в файле который подключен к index.php

    Далее выводится в шаблон через {page}

    The_Wolf, понимаю что смешно. Но пот не могу никак одолеть юзер функции.
     
  4. The_Wolf

    The_Wolf

    Регистр.:
    21 окт 2013
    Сообщения:
    339
    Симпатии:
    189
    Вот пример покажу :
    подключаемся к бд mysql и чтобы получить количество строк с таблицы пишем примерно вот такую функцию :
    PHP:
    function Count($table) {
                
    $Count mysql_query("SELECT COUNT(*) FROM $table");
                
    $Countmysql_fetch_row($Count);
                return 
    $Count[0];
            }
    Ну вот так и не надо инклюдить никакие файлы .
    пишите все функции в один файл и инклюдите тот файл и всё . вызываете функцию ...
     
    асс нравится это.
  5. Vishez

    Vishez

    Регистр.:
    19 авг 2013
    Сообщения:
    169
    Симпатии:
    81
    Не знаю как в пхп, но в некоторых языках(например c#, js) функция находит весьма обширное применение. + Чтобы не писать один и тот же код(длинный) много раз. Ну и еще в ООП как методы классов. А между теми примерами, что ты привел разницы нет(правда у тебя там небольшая ошибка).
     
  6. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    А где ошибка в том что нет в открывающей<? php ? Функция не моя, я лиш приписал строку $string =file_get_contents('yandex.ru');
     
  7. The_Wolf

    The_Wolf

    Регистр.:
    21 окт 2013
    Сообщения:
    339
    Симпатии:
    189
    Он наверно про функцию . Наверно разработчик так написал чтобы перепутать :) .
    А на счет открывающий <? php , это не важно...
     
  8. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    PHP:
    //Копируем папку шаблона кидаем в папку сата
    dircpyt(''"modules/template/".$tpl_papka$root_user_papka.'/'.$dom_user.'/'.$template.'/'.$tpl_papka1);

    //Копируем файлы сайта
    dircpy(''"modules/file_cms/"$root_user_papka.'/'.$dom_user1);


    Я в принципе все данные пишиу в один файл, только без функций.

    Я согласен что функции по компактнее и красивее, я к примеру добавил функции в генераторе при создании анкет.



    к примеру в подключаемом файле есть коды функций

    //Блок копирования файлов CMS
    function dircpyt($basePath, $source, $dest, $overwrite = false){

    тут код
    }

    //Функция создающая ЧПУ для фоток
    function translit_a($str)
    {}


    и в низу в цикле они всего в две строки

    в место громоздкого кода.



    конечно так круче
    PHP:
    //Функция создающая ЧПУ для фоток
    function translit_a($str)
    {
    $tr = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya","."=>"_"," "=>"_","?"=>"_","/"=>"_","\\"=>"_","*"=>"_",":"=>"_","*"=>"_","\""=>"_","<"=>"_",">"=>"_","|"=>"_" );
    return 
    strtr($str,$tr);
    }



    //вызов строкой 
    $nik_f =translit_a($nik_f);



    хотя можно ведь добавить и так но функцию подключается в шапке, а этот код в шапке не сработает.
    PHP:

    $tr 
    = array("А"=>"A","Б"=>"B","В"=>"V","Г"=>"G","Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I","Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N","О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T","У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH","Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"","Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b","в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j","з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l","м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r","с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h","ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y","ы"=>"yi","ь"=>"'","э"=>"e","ю"=>"yu","я"=>"ya","."=>"_"," "=>"_","?"=>"_","/"=>"_","\\"=>"_","*"=>"_",":"=>"_","*"=>"_","\""=>"_","<"=>"_",">"=>"_","|"=>"_" );



    $nik_f strtr($str,$tr);
     
  9. Vishez

    Vishez

    Регистр.:
    19 авг 2013
    Сообщения:
    169
    Симпатии:
    81
    Код:
    echo showString($string") .'<br>';
    
    Одни двойные кавычки не нужны.
     
  10. асс

    асс

    Регистр.:
    13 окт 2006
    Сообщения:
    756
    Симпатии:
    221
    прошу прощения, это я ошибся, не удалил. "