无法将char转换为int值

时间:2013-10-22 11:50:49

标签: javascript php jquery html converter

请参阅下面的代码,

<div class="product_id" id="3"></div>

<?php
    $id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
    echo "<br>";
    echo $id;
    echo "<br>";
    echo intval($id);
?>

如果我执行此代码输出是,

3

0

我不知道它为什么不转换。我需要显示为,

3

3

由于

3 个答案:

答案 0 :(得分:2)

PHP不知道JavaScript在浏览器中运行时显示的是什么。看看你的源代码,你会看到我的意思。第一个“3”实际上不是“3”。这是JavaScript代码。 Javascript代码是一个字符串,intval“强制转换”为“0”。

答案 1 :(得分:0)

尝试。您需要TypeCast喜欢

echo (int)$id;

答案 2 :(得分:0)

intval($id)尝试将"<script>...</script>"转换为整数,当然也会失败。看一下doc(intval),“返回值”部分告诉我们:

  

成功时var的整数值,或失败时 0

另请注意,echo打印服务器端,document.write打印浏览器端。现在,让我们来看看你的PHP代码:

<div class="product_id" id="3"></div>
<?php
    $id = "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>";
    echo "<br>";      // prints "<br>"
    echo $id;         // prints "<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>"
    echo "<br>";      // prints "<br>"
    echo intval($id); // prints "0" (since intval failed)
?>

以下是在浏览器中加载的结果HTML:

<div class="product_id" id="3"></div>
<br>
<script>id = $('.product_id').attr('id');document.write(parseInt(id));</script>
<br>
0