PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

php heredoc原文档和nowdoc语法

巴扎黑
巴扎黑 原创
2016-11-10 13:59:08 983浏览

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;
';      // 这是原文档, heredoc格式   echo 点击检查框, 标记为完成. (任务本身已经所有的子任务都将不会出现在这个列表)  
   EOT;   make_list($tasks[0]); //把包含顶级任务的数组发送给它, 最顶级的parent_id是0   //这是5.3新增的nowdoc语法, 相对于原文档就和单引号对于双引号一样, nowdoc不会解析变量   echo   
   EOT;      ?>  

  

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。