请参阅我的代码如下,
<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