<!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是一种用于处理字符串的技术,它们允许编写多行文本而无需使用常规的单引号或双引号。这两种技术非常相似,但有一些关键的区别,这些区别将在下文详细解释。首先,让我们了解Heredoc...
在PHP编程语言中,字符串的表示方式有很多种,其中包括双引号、单引号以及两种特殊的多行字符串表示法:heredoc和nowdoc。本文将详细介绍这两种语法结构以及它们之间的区别,并提供使用时的注意事项。 首先,...
PHP提供了四种方式来定义字符串:单引号、双引号、heredoc语法结构以及nowdoc语法结构(PHP5.3.0之后引入)。不同的字符串定义方式各有特点,例如单引号不会解析特殊字符和变量,而双引号则可以。 数组型(array)...
PHP heredoc语法 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)是一种在命令行shell(如sh、csh、ksh、bash、PowerShell和zsh)和程序语言(像Perl、PHP、Python和Ruby)里定义一个字符串的方法。 使用概述: 1. 必须后接分号,否则编译通不过。 2. EOF 可以用...
PHP是一种弱类型语言,变量可以在使用前不进行显式声明,而在字符串定义方面,主要有四种方式:单引号(' ')、双引号(" ")、heredoc语法和nowdoc语法。每种方式都有其独特的优势和适用场景,理解这些方式将有助于...
字符串还可以使用heredoc和nowdoc语法,方便多行文本的输出。 在数据类型检查和转换时,var_dump()函数可以用来查看变量的详细信息,包括类型和值。数据类型之间的转换通常是自动的,但也可以通过特定函数如(int)$...
- 使用HEREDOC和NOWDOC:这两种语法结构允许在PHP中定义多行字符串,使得HTML代码看起来更整洁。 - 输出变量:通过在HTML标签内插入PHP变量,动态生成页面内容,如`$var?>`或`<?php echo $var; ?>`. 4. **模板...
HEREDOC 和 NOWDOC 是PHP中处理多行字符串的特殊语法结构。HEREDOC 结构允许你在字符串中包含变量,而NOWDOC则类似于单引号字符串,不解析变量。下面是一个HEREDOC的例子: ```php $var = "Hello"; $...
PHP中的Heredoc技术是一种特殊的字符串输出方式,它源自Perl语言,允许你在代码中方便地输出多行文本,包括变量的插入和插值。在PHP文档中,Heredoc通常被简略介绍,但实际应用中,特别是在某些论坛程序如phpwind中...
10. **Nowdoc**:类似Heredoc但包含单引号的文档语法。 11. **Heredoc使用**:允许使用Heredoc初始化静态变量和类属性/常量。 PHP的每一次迭代都在努力提升性能,增强安全性,并引入现代编程特性。对于PHP开发者来...
Heredoc是PHP中一种特殊的字符串定义方式,它允许开发者定义一个多行的字符串,并且可以在字符串中自由地使用变量和大多数字符。...正确理解和使用heredoc语法,可以有效地提高PHP脚本的清晰度和维护效率。
* PHP 字符串:PHP 字符串是使用引号或 heredoc 语法定义的文本数据。 * PHP 运算符:PHP 运算符包括算术、比较、逻辑、赋值等运算符。 * PHP If...Else 语句:PHP If...Else 语句用于控制程序流程,根据条件判断...
在 PHP 中,`echo` 也可以配合 HEREDOC 和 NOWDOC 结构来输出多行字符串,这对于模板和代码中包含大量文本的情况非常有用。 ```php echo 这是一个 多行 字符串 EOT; // NOWDOC 版本,不解释变量 echo 这是一个 ...
3. **HEREDOC 和 NOWDOC**:使用HEREDOC和NOWDOC语法在PHP中插入大量HTML,保留原始格式且无需额外转义。 4. **视图模板**:将PHP逻辑与HTML分离,使用像Smarty这样的模板引擎,将数据传递给HTML模板进行渲染。 每...
- PHP 中字符串可以通过多种方式来表示,包括单引号(')、双引号(")以及 HEREDOC 和 NOWDOC。 - 单引号字符串不会解析变量,而双引号字符串会解析变量和转义序列。 - HEREDOC 语法使用 操作符,并指定一个结束标记,...
增加了对Flexible Heredoc and Nowdoc的支持,使得代码更具可读性;还改进了错误报告,提供更清晰的错误信息,便于调试。这些新特性不仅提高了开发效率,还增强了程序的健壮性。 在PHP 7.3.0RC1的Windows构建中,...