Home  >  Article  >  Backend Development  >  php heredoc original document and nowdoc syntax

php heredoc original document and nowdoc syntax

WBOY
WBOYOriginal
2016-08-08 09:20:421255browse

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>Current To-Do List</title>
</head>
<body>
<?php
    function make_list($parent) {
        global $tasks;
        echo '<ol>';

        foreach($parent as $task_id => $todo) {
            echo <<<EOT
<li><input type="checkbox" name="tasks[$task_id]" value="done"> $todo
EOT;

            if (isset($tasks[$task_id])) { // 如果当前id有子任务则递归创建菜单
                make_list($tasks[$task_id]);
            }

            echo "</li>";
        }

        echo '</ol>';
    }

    $db = mysqli_connect('192.168.31.172' ,'root', 'root', 'phpadvanced');
    mysqli_query($db, "set names utf8");

    if (($_SERVER['REQUEST_METHOD'] == 'POST') && isset($_POST['tasks']) && is_array($_POST['tasks']) && !empty($_POST['tasks'])) {

        $q = 'UPDATE tasks SET date_completed=NOW() WHERE task_id IN (';
        foreach($_POST['tasks'] as $task_id => $v) {
            $q .= $task_id.', ';
        }
        $q = substr($q, 0, -2) . ')';

        $r = mysqli_query($db, $q);

        if(mysqli_affected_rows($db) == count($_POST['tasks'])) {
            echo '<p>选择的任务已经标记完成</p>';
        } else {
            echo '<p>选择的任务不能被标记为完成</p>';
        }
    }

    $q = 'SELECT task_id, parent_id, task FROM tasks WHERE date_completed="0000-00-00 00:00:00" ORDER BY parent_id, date_added ASC';
    $r = mysqli_query($db, $q);

    $tasks = array();
while (list($task_id, $parent_id, $task) = mysqli_fetch_array($r, MYSQLI_NUM)) {
    $tasks[$parent_id][$task_id] = $task;
}
//echo '<pre class="brush:php;toolbar:false">'.print_r($tasks,1).'
'; // 这是原文档, heredoc格式 echo <<点击检查框, 标记为完成. (任务本身已经所有的子任务都将不会出现在这个列表)

EOT; make_list($tasks[0]); //把包含顶级任务的数组发送给它, 最顶级的parent_id是0 //这是5.3新增的nowdoc语法, 相对于原文档就和单引号对于双引号一样, nowdoc不会解析变量 echo <<<'EOT'
EOT; ?>

The above introduces the original php heredoc document and nowdoc syntax, including the relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn