无法将字符转换为整数值


Can't convert char to int value

请参阅我的代码如下,

<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

谢谢

PHP 不知道 JavaScript 显示什么,因为它在浏览器中运行。看看你的源代码,你就会明白我的意思。第一个"3"实际上不是"3"。这是JavaScript代码。Javascript代码是一个字符串,intval"cast"为"0"。

试试喜欢。你需要像这样TypeCast

echo (int)$id;

intval($id)试图将"<script>...</script>"转换为整数,当然失败了。看看文档(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