現在の ToDo リスト

ホームページ  >  記事  >  バックエンド開発  >  php heredocのオリジナルドキュメントとnowdoc構文

php heredocのオリジナルドキュメントとnowdoc構文

巴扎黑
巴扎黑オリジナル
2016-11-10 13:59:081068ブラウズ

Heredoc のオリジナル ドキュメントと nowdoc 構文の使用シナリオ コード

<!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 &#39;<ol>&#39;;  
  
        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 &#39;</ol>&#39;;  
    }  
  
    $db = mysqli_connect(&#39;192.168.31.172&#39; ,&#39;root&#39;, &#39;root&#39;, &#39;phpadvanced&#39;);  
    mysqli_query($db, "set names utf8");  
  
    if (($_SERVER[&#39;REQUEST_METHOD&#39;] == &#39;POST&#39;) && isset($_POST[&#39;tasks&#39;]) && is_array($_POST[&#39;tasks&#39;]) && !empty($_POST[&#39;tasks&#39;])) {  
  
        $q = &#39;UPDATE tasks SET date_completed=NOW() WHERE task_id IN (&#39;;  
        foreach($_POST[&#39;tasks&#39;] as $task_id => $v) {  
            $q .= $task_id.&#39;, &#39;;  
        }  
        $q = substr($q, 0, -2) . &#39;)&#39;;  
  
        $r = mysqli_query($db, $q);  
  
        if(mysqli_affected_rows($db) == count($_POST[&#39;tasks&#39;])) {  
            echo &#39;<p>选择的任务已经标记完成</p>&#39;;  
        } else {  
            echo &#39;<p>选择的任务不能被标记为完成</p>&#39;;  
        }  
    }  
  
    $q = &#39;SELECT task_id, parent_id, task FROM tasks WHERE date_completed="0000-00-00 00:00:00" ORDER BY parent_id, date_added ASC&#39;;  
    $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 &#39;<pre class="brush:php;toolbar:false">&#39;.print_r($tasks,1).&#39;
'; ​ // これはオリジナルのドキュメントであり、ヒアドキュメント形式です エコー チェックボックスをクリックして完了としてマークします (タスク自体とすべてのサブタスクはこのリストには表示されません)。 EOT; make_list($tasks[0]); // 先頭のタスクを含む配列を送信します。先頭のparent_idは0です。 //これは 5.3 の新しい nowdoc 構文です。元のドキュメントと比較すると、Nowdoc は変数を解析しません。 エコー
EOT; ​ ?>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。