`
dcj3sjt126com
  • 浏览: 1872407 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php heredoc原文档和nowdoc语法

    博客分类:
  • PHP
阅读更多
<!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>'.print_r($tasks,1).'</pre>';

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

?>
</body>
</html>

 

分享到:
评论

相关推荐

    php中heredoc与nowdoc介绍

    在PHP编程中,Heredoc和Nowdoc是一种用于处理字符串的技术,它们允许编写多行文本而无需使用常规的单引号或双引号。这两种技术非常相似,但有一些关键的区别,这些区别将在下文详细解释。首先,让我们了解Heredoc...

    PHP中nowdoc和heredoc使用需要注意的一点

    在PHP编程语言中,字符串的表示方式有很多种,其中包括双引号、单引号以及两种特殊的多行字符串表示法:heredoc和nowdoc。本文将详细介绍这两种语法结构以及它们之间的区别,并提供使用时的注意事项。 首先,...

    PHP数据类型的总结分析

    PHP提供了四种方式来定义字符串:单引号、双引号、heredoc语法结构以及nowdoc语法结构(PHP5.3.0之后引入)。不同的字符串定义方式各有特点,例如单引号不会解析特殊字符和变量,而双引号则可以。 数组型(array)...

    PHP 基础实例教程(PHP网页实例版)

    PHP heredoc语法 PHP 变量 PHP 变量的名称要求 给 PHP 变量赋值 PHP 变量类型 PHP 变量类型转换 PHP 可变变量 PHP 变量的有效范围 PHP 文件操作 PHP 文件处理 PHP 确定文件大小 PHP 文件定位 PHP 操作符 PHP算术操作...

    PHP 匿名函数与注意事项详细介绍

    PHP5.3:弃用的功能,匿名函数,新增魔术方法,命名空间,后期静态绑定,Heredoc 和 Nowdoc, const, 三元运算符,Phar PHP5.4:Short Open Tag, 数组简写形式,Traits, 内置 Web 服务器,细节修改 PHP5.5:yield, ...

    PHP EOF(heredoc) 使用说明

    PHP EOF(heredoc)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。 使用概述: 1. 必须后接分号,否则编译通不过。 2. EOF 可以用...

    PHP定义字符串的四种方式详解

    PHP是一种弱类型语言,变量可以在使用前不进行显式声明,而在字符串定义方面,主要有四种方式:单引号(' ')、双引号(" ")、heredoc语法和nowdoc语法。每种方式都有其独特的优势和适用场景,理解这些方式将有助于...

    PHP移动后端开发课堂笔记

    字符串还可以使用heredoc和nowdoc语法,方便多行文本的输出。 在数据类型检查和转换时,var_dump()函数可以用来查看变量的详细信息,包括类型和值。数据类型之间的转换通常是自动的,但也可以通过特定函数如(int)$...

    php模板与生成HTML

    - 使用HEREDOC和NOWDOC:这两种语法结构允许在PHP中定义多行字符串,使得HTML代码看起来更整洁。 - 输出变量:通过在HTML标签内插入PHP变量,动态生成页面内容,如`$var?&gt;`或`&lt;?php echo $var; ?&gt;`. 4. **模板...

    PHP 多行字符串的赋值方法

    HEREDOC 和 NOWDOC 是PHP中处理多行字符串的特殊语法结构。HEREDOC 结构允许你在字符串中包含变量,而NOWDOC则类似于单引号字符串,不解析变量。下面是一个HEREDOC的例子: ```php $var = "Hello"; $...

    php heredoc和phpwind的模板技术使用方法小结

    PHP中的Heredoc技术是一种特殊的字符串输出方式,它源自Perl语言,允许你在代码中方便地输出多行文本,包括变量的插入和插值。在PHP文档中,Heredoc通常被简略介绍,但实际应用中,特别是在某些论坛程序如phpwind中...

    php语言历史版本更新概要php4-php7(20151209)

    10. **Nowdoc**:类似Heredoc但包含单引号的文档语法。 11. **Heredoc使用**:允许使用Heredoc初始化静态变量和类属性/常量。 PHP的每一次迭代都在努力提升性能,增强安全性,并引入现代编程特性。对于PHP开发者来...

    解析php中heredoc的使用方法

    Heredoc是PHP中一种特殊的字符串定义方式,它允许开发者定义一个多行的字符串,并且可以在字符串中自由地使用变量和大多数字符。...正确理解和使用heredoc语法,可以有效地提高PHP脚本的清晰度和维护效率。

    PHP函数参考手册

    * PHP 字符串:PHP 字符串是使用引号或 heredoc 语法定义的文本数据。 * PHP 运算符:PHP 运算符包括算术、比较、逻辑、赋值等运算符。 * PHP If...Else 语句:PHP If...Else 语句用于控制程序流程,根据条件判断...

    PHP echo深入理解

    在 PHP 中,`echo` 也可以配合 HEREDOC 和 NOWDOC 结构来输出多行字符串,这对于模板和代码中包含大量文本的情况非常有用。 ```php echo 这是一个 多行 字符串 EOT; // NOWDOC 版本,不解释变量 echo 这是一个 ...

    注释PHP和html混合代码的小技巧(分享)

    3. **HEREDOC 和 NOWDOC**:使用HEREDOC和NOWDOC语法在PHP中插入大量HTML,保留原始格式且无需额外转义。 4. **视图模板**:将PHP逻辑与HTML分离,使用像Smarty这样的模板引擎,将数据传递给HTML模板进行渲染。 每...

    高级PHP程序员必备知识

    - PHP 中字符串可以通过多种方式来表示,包括单引号(')、双引号(")以及 HEREDOC 和 NOWDOC。 - 单引号字符串不会解析变量,而双引号字符串会解析变量和转义序列。 - HEREDOC 语法使用 操作符,并指定一个结束标记,...

    php-7.3.0RC1-nts-Win32-VC15-x64

    增加了对Flexible Heredoc and Nowdoc的支持,使得代码更具可读性;还改进了错误报告,提供更清晰的错误信息,便于调试。这些新特性不仅提高了开发效率,还增强了程序的健壮性。 在PHP 7.3.0RC1的Windows构建中,...

Global site tag (gtag.js) - Google Analytics