首页 >社区问答列表 >colspan=\"$w\" 这行代码是什么意思?

colspan=\"$w\" 这行代码是什么意思?

            if ($w && $d == 1) {                // 如果该月的第1天不是星期日,则填充空白
                $html .= "<td colspan=\"$w\"> </td>";
            }

  • 秋香姐家的小书童
  • 秋香姐家的小书童    2018-09-15 11:41:553楼

    不建议这写,你最好是写成这样

    if ($w && $d == 1) {                // 如果该月的第1天不是星期日,则填充空白
       $html .= "<td colspan=".$w."> </td>";
    }

    字符串的相关拼接 方法 及 效率问题  建议你再学习下

    +0添加回复

  • 回复

    谢谢了,我再去找拼接看

    此去经年  作者 · 2018-09-15 11:51:27
    回复
  • 此去经年
  • 此去经年    2018-09-14 10:53:092楼

    查到了,是转义字符。但为什么不能直接$html .= "<td colspan="$w"> </td>";

    我知道会报错

    Parse error:  syntax error, unexpected '$w' (T_VARIABLE) in /home/phpcn6peh2pwcun/wwwroot/compile.php(41) : eval()'d code on line 39



    要$html .= "<td colspan=\"$w\"> </td>";

    但这是为什么呢?

    +0添加回复

  • 回复

    $html .= "<td colspan="$w"> </td>"; 改成这样 $html .= "<td colspan='$w'> </td>";应该可以吧

    Summer · 2018-09-14 12:28:53
    回复

    "$w" 改成 '$w'

    Summer · 2018-09-14 12:29:57
    回复

    改成单引号也会报错

    此去经年  作者 · 2018-09-15 11:50:04
    回复
  • 此去经年
  • 此去经年    2018-09-14 08:14:151楼

    这是完整的代码,没看懂第39行里面这个反斜杠是什么意思,能帮忙讲一下吗?

    <!doctype html>

    <html>
    <head>
    <title>制作年历</title>
    <style>
     // body{text-align:center;}
      .box{margin:0 auto;width:880px;}
      .title{background:#ccc;}
      table{height:200px;width:200px;font-size:12px;text-align:center;float:left;margin:10px;font-family:arial;}
    </style>
    </head>
    <body>
    <?php
    function calendar($y)// 1.定义年历生成函数
    {
        // 3.获取指定年份1月1日的星期数值
        $w = date('w', strtotime("$y-1-1"));

        $html = '<div class="box">';

        // 2.拼接每个月份的表格
        for ($m = 1; $m <= 12; ++$m) {
            $html .= '<table>';
            $html .= '<tr class="title"><th colspan="7">' . $y . ' 年 ' . $m . ' 月</td></tr>';
            $html .= '<tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>';

            // 获取当前月份$m共有多少天
            $max = date('t', strtotime("$y-$m"));
            // 从该月份的第1天循环到最后1天
            for ($d = 1; $d <= $max; ++$d) {
                // 控制星期值在0~6范围内变动
                $w = ($w + 1 > 6) ? 0 : $w + 1;
            }
            

            $html .= '<tr>';                        // 开始<tr>标签
            for ($d = 1; $d <= $max; ++$d) {
                if ($w && $d == 1) {                // 如果该月的第1天不是星期日,则填充空白
                    $html .= "<td colspan=\"$w\"> </td>";
                }
                $html .= "<td>$d</td>";
                if ($w == 6 && $d != $max) {        // 如果星期六不是该月的最后一天,则换行
                    $html .= '</tr><tr>';
                } elseif ($d == $max) {             // 该月的最后一天,闭合<tr>标签
                    $html .= '</tr>';
                }
                $w = ($w + 1 > 6) ? 0 : $w + 1;
            }

            $html .= '</table>';
        }
        $html .= '</div>';
        return $html;
    }
    echo calendar('2017');
    ?>
    </body>
    </html>

    +0添加回复

  • 回复