Функция PHP или как многократно использовать этот код в разных случаях на одной странице, не используя php include - PullRequest
0 голосов
/ 16 декабря 2018

Поэтому я хочу многократно включать этот код на одну страницу с разными данными:

if (!empty($faq[$fisf][$title]) ) {
    echo '<div class="card card-body col-12"><h5 class="card-title">'.$faq[$fisf][$title].'</h5>';

    if (!empty($faq[$fisf][$image]) ) {
        echo '<img src="'.$faq[$fisf][$image].'" alt="'.$faq[$fisf][$title].'" class="img-fluid">';
    }

    if (!empty($faq[$fisf][$title]) ) {
        echo $faq[$fisf][$text];
    }

    echo '</div>';
}

Обычно я помещаю этот код в отдельный файл и затем включаю его столько раз, сколько мне нужноэто и в зависимости от того, где этот код находится в цикле или foreach, он покажет соответствующие данные!.

Но я пытаюсь найти лучший способ сделать это, например, использовать функцию!

Примерно так:

function faqmodal() {
    if (!empty($faq[$fisf][$title])) {
        echo '<div class="card card-body col-12"><h5 class="card-title">'.$faq[$fisf][$title].'</h5>';

        if (!empty($faq[$fisf][$image])) {
            echo '<img src="'.$faq[$fisf][$image].'" alt="'.$faq[$fisf][$title].'" class="img-fluid">';
        }

        if (!empty($faq[$fisf][$title])) {
            echo $faq[$fisf][$text];
        }

        echo '</div>';
    }
}

Я хочу, чтобы эта функция запускалась на разных элементах foreach и загружала соответствующие данные туда, где она выполняется.

faqmodal();

Так что эта часть будет зависетьо том, что foreach говорит загружать его:

$faq[$fisf][$title]

Но теперь функция не преобразует приведенный выше код в соответствие с тем, что в цикле foreach говорит ему заполнить его!

Но это может быть не самый умный способ сделать это, я открыт для любых идей!

1 Ответ

0 голосов
/ 16 декабря 2018

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

function faqmodal($title, $image, $text){
    if (!empty($title) && !empty($image) && if (!empty($text)) {
        echo '
        <div class="card card-body col-12">
            <h5 class="card-title">'.$title.'</h5>
            <img src="'.$image.'" alt="'.$title.'" class="img-fluid">
        '.$text.'</div>'; //you might wanna think about moving the text into e.g. a <span> tag
    }
}

Если вы теперь хотите вызвать функцию, вы будете делатьэто так:

faqmodal($faq[$fisf][$title], $faq[$fisf][$image], $faq[$fisf][$title]);

И данные, которые вы передаете, будут различаться в зависимости от данных, которые вы получаете через цикл foreach.Если это не то, что вы имеете в виду, пожалуйста, дайте мне знать через комментарий, и мы будем работать над этим.

...