какова несправедливость с этой функцией PHP?

кто-либо может сказать мне, какова несправедливость с этой функцией?

Я написал эту эту функцию, чтобы получить ошибки от множества $reg_errors и использовать те ошибки в различном месте в том же самом сценарии.

function testimonialErrors ($reg_errors) {
    if ( !empty($reg_errors) ) {
            foreach ( $reg_errors AS $error) {
                echo "
  • $error
  • "; } } return $error; }

    Тогда я вызвал ту функцию как это..

    if ( !empty($reg_errors) ) {
        echo '<div class="error">
                    
                    

    Errors,

      '; echo testimonialErrors($reg_errors); echo '
    </div>'; }

    Но этот код не работает.

    ОБНОВЛЕНИЕ: это - мой новый код

    function tesimonialErrors ($reg_errors) {
        if ( !empty($reg_errors) ) {
                foreach ( $reg_errors AS $error) {
                    echo "
  • $error
  • "; } } return $error; }

    И названный им как это

    if ( !empty($reg_errors) ) {
        echo '<div class="error">
                    
                    

    Errors,

      '; tesimonialErrors($reg_errors); echo '
    </div>'; }
    1
    Изучите, каков переменный объем : php.net/manual/en/language.variables.scope.php
    добавлено автор deceze, источник
    @jeroen На самом деле, что произошло там? Я пробую это в течение многих часов, чтобы зафиксировать. но все еще никакая удача
    добавлено автор TNK, источник
    вызывая ту функцию в моем HTML нет ничего
    добавлено автор TNK, источник
    Я пытался повторить функцию, но не работу.. повторите tesimonialErrors ();
    добавлено автор TNK, источник
    о.. почему я спускаюсь голоса за свой вопрос?
    добавлено автор TNK, источник
    Объясните "его doesn' t работа"
    добавлено автор Bart Friederichs, источник
    @devOp не он doesn' t. Эхо уже в функции. Ваша функция can' t видят $reg_errors /
    добавлено автор BenM, источник
    Каков точный вывод HTML того кода?
    добавлено автор jeroen, источник
    используйте глобальный $reg_errors или $GLOBALS [' reg_errors']
    добавлено автор user1646111, источник

    5 ответы

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

    function tesimonialErrors ($reg_errors) {
      ...
    

    и назовите его как:

    tesimonialErrors($reg_errors);
    
    4
    добавлено
    @jeroen я попробовал его, но не работа. Проверьте, что я обновил свой вопрос
    добавлено автор TNK, источник
    Но у print_r ($reg_errors) есть ошибки
    добавлено автор TNK, источник
    @jeroen проверяют мои обновления. но не работа
    добавлено автор TNK, источник
    @jeroen я напечатал $reg_errors тогда, я получил это - Множество ([имя] => Имя: Эта область требуется. [электронная почта] => Адрес электронной почты: Эта область требуется. [membertype] => Тип Членства: Эта область требуется. [0] => Никакой файл, отобранный [писать-свидетельства] => Свидетельство: Эта область требуется.)
    добавлено автор TNK, источник
    И don' t забывают помещать его в требование...:)
    добавлено автор Bart Friederichs, источник
    @Tharanga Нууон Ю должен оставить ваш оригинальный код и поместить ваш, редактирует ниже для ясности. Кроме этого, отредактированный код кажется о праве, что действительно $reg_errors содержат и каков точный вывод HTML?
    добавлено автор jeroen, источник
    @Tharanga Nuwan Между прочим, вы не должны эхо продукция вашей функции (просто называют его, вы отзываетесь эхом в самой функции), и при этом вы не должны возвращать последнее $error стоимость; это испортит ваш список / HTML.
    добавлено автор jeroen, источник
    @Tharanga Nuwan, Который должен работать, просто избавьтесь от дополнительного эхо в вашем главном коде.
    добавлено автор jeroen, источник
    @Bart Фридеричс Джаст добавил это...
    добавлено автор jeroen, источник
    Лучше этот путь, чем использование globals!
    добавлено автор Mez, источник

    Добавьте глобальный $reg_errors; к вашей функции.

    function testimonialErrors() {
        global $reg_errors;
        if (!empty($reg_errors)) {
            foreach ($reg_errors as $error) {
                echo "
  • $error
  • "; } } }
    2
    добавлено
    @powtac проверяют мой обновленный вопрос. Но не работают на меня
    добавлено автор TNK, источник
    Globals злые! - stackoverflow.com/questions/5166087/php-global-in-functions имейте прочитанный:)
    добавлено автор Mez, источник
    Akam - просто обновленный мой комментарий:)
    добавлено автор Mez, источник
    @Mez: I' d соглашаются в принципе, но OP didn' t кажутся, что были вероятны или готовы изменить так большую часть своего кода.
    добавлено автор Magnus, источник
    @Mez: почему? вы могли послать ссылку?
    добавлено автор user1646111, источник

    Как @Akam указанный, $reg_errors находится в глобальной области видимости, таким образом, необходимо использовать любой глобальный $reg_errors; или $GLOBALS ['reg_errors'] .

    Также я предложил бы изменить имя функции tesimonialErrors надлежащему английскому языку (я предположу, что это было бы testimonialErrors ). Иначе Следующий Парень мог бы закончить тем, что разместил его на TDWTF.

    1
    добавлено
    function testimonialErrors ($reg_errors) {
        if ( !empty($reg_errors) ) {
                foreach ( $reg_errors AS $error) {
                    echo "
  • $error
  • "; } } return $error; //****remove return statement**** }
    1
    добавлено

    Почему бы не это как это?

    if ( !empty($reg_errors) ) {
        echo '<div class="error">
                
                

    Errors,

    • '; echo implode('
    • ', $reg_errors); echo '
    </div>'; }
    0
    добавлено
    phpGeeks
    phpGeeks
    3 620 участник(ов)

    Best PHP chat Еще: @dbGeeks - базы данных @phpGeeksJunior - новичкам @moscowProgers - IT Москва @ebanoePhp - весёлый канал о PHP @laravel_pro - Laravel @jobGeeks - вакансии @jsChat - JS Правила: https://t.me/phpGeeks/764859 ДР - 28.03.2016

    PHP
    PHP
    1 309 участник(ов)

    Группа про современный PHP. Обсуждаем ООП, TDD, BDD, DDD, SOLID, GRASP и прочие крутые базворды Для ознакомления: https://gist.github.com/mkusher/711bd46f0b62fbae851182e6fb3b1839 Группа PHP для новичков @phpGeeksJunior Вакансии: https://t.me/fordev

    PHP — вакансии, поиск работы и аналитика
    PHP — вакансии, поиск работы и аналитика
    1 251 участник(ов)

    Публикуем вакансии и запросы на поиск работы по направлению PHP, Laravel, Symfony, Yii и т.д. Здесь всё: full-time, part-time, remote и разовые подработки. См. также: @qa_jobs, @devops_jobs, @javascript_jobs, @nodejs_jobs, @uiux_jobs, @products_jobs

    phpGeeksJunior
    phpGeeksJunior
    980 участник(ов)

    Группа для новичков. Не стесняйтесь задавать вопросы по php. Не флудить!!!! Правила и полезные ссылки https://gist.github.com/exileed/a53dd0617b35a705ff44b38c8028e6a5 Бест от пхпгикс https://t.me/best_of_phpgeeks

    phpclub.ru
    phpclub.ru
    872 участник(ов)

    Официальный чат phpclub.ru - остерегайтесь подделок #rules Правила группы - уважайте друг друга. Скриншоты -> ссылками. Код -> pastebin.com. Вакансии строго -> https://goo.gl/4bNxym, в чат ссылку. За рекламу и мат - БАН!

    Devall | PHP
    Devall | PHP
    272 участник(ов)

    Пристанище для восходящих звёзд разработки, которые перейдут на более адекватные языки. http://combot.org/chat/-1001014863761 Инвайт: j.mp/devallphp