php - 简单的PHP网页中有趣的输出

标签 php

这是一个非常简单的PHP页面,其中包含一个javascript函数。我看到的输出有所不同。我不明白为什么会这样。

在下面的代码中,x回显为012012,但是当我将其传递给javascript函数并在innerHTML中显示时,它显示为5130!

有人可以帮忙吗?

<?php
    $x= date("mY");
    echo $x;
?>
<html>
    <head>
        <script>
            function myfunc1(y)
            {
                div1 = document.getElementById("mydiv1")
                div1.innerHTML = y;
            }
        </script>
    </head>
    <body <?php echo "onload='myfunc1(".$x.")'>";?>
    <div id="mydiv1" style="background:#efefef;border:1px solid green;height:100px;width:100px;text-align:center">
    </div>
    </body>
</html>

HTML输出
012012<html>
    <head>
        <script>
            function myfunc1(y)
            {
                div1 = document.getElementById("mydiv1")
                div1.innerHTML = y;
            }
        </script>
    </head>
    <body onload='myfunc1(012012)'>    <div id="mydiv1" style="background:#efefef;border:1px solid green;height:100px;width:100px;text-align:center">
    </div>
    </body>
</html>

HTML输出(屏幕截图)

最佳答案

发生这种情况是因为012012被视为int。但是,由于它以0开头,因此JavaScript将其视为基数8(八进制),因此将其转换为5130

您需要将012012用引号引起来,因此JavaScript会将其视为字符串。另外,我建议仅使用PHP来回显所需的值,而不是整个函数调用。使调试稍微容易一些。

<body onload="myfunc1('<?php echo $x;?>')">

关于php - 简单的PHP网页中有趣的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8744796/

相关文章:

php - Laravel 路由错误 404

javascript - Yii2 输入字段设置禁用取决于其他字段

带有二进制协议(protocol)的 PHP Memcached—— `increment()` 之后返回的垃圾数据

php - 灵活的 PHP/MySQL 分页

php - Drupal 7 xautoload Composer

php - 网站如何做到这一点 index.php?something=somepage

php - 生成并保存图像

php - 使用 LIKE 子句搜索 Mysql

PHP strstr - 反向方法

php - PHP 中的 INSERT 查询失败(返回空白错误)