Как вызвать функцию в другом блоке в PHP? - PullRequest
0 голосов
/ 20 марта 2020

php Дамм ie здесь. Мой учитель дал нам этот код, чтобы выучить For l oop и как использовать функции в PHP, когда я написал его в Sublime Text 3, он не работает, и я не знаю почему, любая помощь?

<!DOCTYPE html>
<html>
<head>
    <title>CICLO FOR Y FUNCTION</title>
</head>
<body>

    <h1>Uso de funciones (function) y el ciclo FOR</h1>
    <h1>helo</h1>
    <?php
        function muestra($valor){
            if($valor<0){
                $color = "red";
                echo "<td><font color='$color'></font></td><br>\n";
            }
            else{
                $color = "blue";
                echo "<td><font color='$color'></font></td>\n";
            }
        }
    ?>
        <table border="1">
    <?php
        for($x=0; $x<=2; $x+=0.01){
            echo "<tr>";
            muestra($x);
            muestra(sin($x));
            muestra(cos($x));
            echo "</tr>";
        }
    ?>
</body>
</html>

Захват

1 Ответ

0 голосов
/ 20 марта 2020
  1. Удалите тег <br>, здесь он бесполезен!
  2. Вам необходимо отобразить данные в ячейке, чтобы увидеть результат с цветом.
  3. Вместо <font color=""> Вы должны использовать <span style="color: <your color>;"> ... Почему? Тег <font> устарел в HTML 5 (что обозначается DOCTYPE)!

Ваш код должен выглядеть следующим образом.

<!DOCTYPE html>
<html>
<head>
    <title>CICLO FOR Y FUNCTION</title>
</head>
<body>
    <h1>Uso de funciones (function) y el ciclo FOR</h1>
    <h1>helo</h1>
    <?php
    function muestra($valor) {
        if ($valor < 0) {
            $color = "red";
            echo "<td><span style=\"color: $color;\">{$valor}</span></td>\n";
        } else {
            $color = "blue";
            echo "<td><span style=\"color: $color;\">{$valor}</span></td>\n";
        }
    }
    ?>
    <table border="1">
        <?php
        for ($x = 0; $x <= 2; $x += 0.01) {
            echo "<tr>";
            muestra($x);
            muestra(sin($x));
            muestra(cos($x));
            echo "</tr>";
        }
        ?>
    </table>
</body>
</html>

Лучшее кодирование стиль состоит в том, чтобы иметь только один echo для вывода данных таблицы и использовать return внутри функции вместо echo. Чтобы заархивировать это и получить более чистый код, вы можете переписать приведенный выше пример, как показано ниже.

<?php

function muestra($valor) {
    if ($valor < 0) {
        return '<td><span style="color: red;">' . $valor . '</span></td>' . PHP_EOL;
    }
    return '<td><span style="color: blue;">' . $valor . '</span></td>' . PHP_EOL;
}

$output = '';
for ($x = 0; $x <= 2; $x += 0.01) {
    $output .= '<tr>';
    $output .= muestra($x);
    $output .= muestra(sin($x));
    $output .= muestra(cos($x));
    $output .= '</tr>';
}

?>
<!DOCTYPE html>
<html>
<head>
    <title>CICLO FOR Y FUNCTION</title>
</head>
<body>
    <h1>Uso de funciones (function) y el ciclo FOR</h1>
    <h1>helo</h1>
    <table border="1">
        <?php echo $output; ?>
    </table>
</body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...