php - 多个 PHP 标记中的一个 PHP 变量
问题描述
我有这个 PHP 标签:
<?php
$date = '2018-09-01';
$end = '2018-09-' . date('t', strtotime($date));
?>
我想在同一页面的多个 PHP 标记中使用这两个变量,如下所示:
PHP 标签 1
<?php
while(strtotime($date) <= strtotime($end)) {
$day_num = date('d', strtotime($date));
$day_name = substr(date('l', strtotime($date)), 0, 2);
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<th class='$day_num $day_name'>$day_num <br> <div id='day-name'>$day_name</div>";};
?>
PHP 标签 2
<?php
while(strtotime($date) <= strtotime($end)) {
$day_num = date('d', strtotime($date));
$day_name = date('l', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<td class='$day_num $day_name'><input type='checkbox' class='uk-checkbox'></td>";
};
?>
问题是它在PHP TAG 1中有效,而在PHP TAG 2中无效。
它在PHP TAG 2中显示任何输出的问题是什么。
控制台中没有显示错误。
请记住,我不能加入这两个 PHP 标记,因为它们被页面中的另一个内容分隔。
解决方案
当您的 PHP 脚本启动时,您设置以下值:
<?php
$date = '2018-09-01';
$end = '2018-09-' . date('t', strtotime($date)); //'2018-09-30'
?>
当您的代码输入 PHP 标记 1 时,while
循环会计算两个日期之间的差异while (strtotime($date) <= strtotime($end))
,它的计算结果为真,因为'2018-09-01'
它小于'2018-09-30'
。
然后,在循环中,您的代码会更改$date
变量,直到上限条件不再为真。这将在$date
设置为时发生'2018-10-01'
。因此,离开 PHP 标记 1 后,您的变量现在包含以下值。他们现在是一样的。
$date = '2018-10-01';
$end = '2018-09-30';
输入 PHP 标记 2 时,您会再次评估 while 循环中的条件,但while (strtotime($date) <= strtotime($end))
不再为真。因此,第二个循环永远不会执行。
为了解决这个问题,将 的初始值保存$date
在另一个变量中:
<?php
//Start of your script
$date = '2018-09-01';
$end = '2018-09-' . date('t', strtotime($date)); //'2018-09-30'
$start = $date;
?>
然后,当您输入 PHP 标记 2 时,将 then 错误$date
替换为其初始值,该初始值现在保存在$start
.
<?php
$date = $start;
while(strtotime($date) <= strtotime($end)) {
$day_num = date('d', strtotime($date));
$day_name = date('l', strtotime($date));
$date = date("Y-m-d", strtotime("+1 day", strtotime($date)));
echo "<td class='$day_num $day_name'><input type='checkbox' class='uk-checkbox'></td>";
};
?>
现在第二个循环将与第一个循环一样频繁地运行。
推荐阅读
- c# - 具有组织/Office 365/Microsoft 帐户身份验证的 Blazor(服务器端);如何做本地多个角色?
- django - 我在 Django 的 Gunicorn 的 Procfile 中放了什么?
- nexus - Flutter pub_hosted_url 镜像 sonatype nexus
- javascript - Javascript querySelectorAll 具有特定类的父元素的元素
- html - 从子导航菜单中删除边距
- python - 有没有办法用多个字符替换空格?
- swift - 如何在 pi 图中从中心到自定义角度画一条线?我正在使用 danielgindi/图表
- pandas - 执行 groupby.median() 时如何保存分类列?
- javascript - 如何在javascript中访问json数据?
- php - Manifest 没有 `short_name`,Manifest 没有 `name`