小弟写了个程序  想把json写入数据库  总是报错  检查到最后觉得是json数据传递时有问题  写了两个小程序测试  发现失败了  求高手指点
index.php<body>
<?php
if($_POST[Submit]=="提交"){
$json=json_decode($_POST['text']);
var_dump($json);
new check("$json");
}?>
<form id="form1" name="form1" method="post" action="">
<label>
<textarea name="text" cols="80" rows="20" id="acc"></textarea>
</label>
<label>
<input type="submit" name="Submit" value="提交"/>
</label>
</form>
</body>
check.php<?php
include("index.php");
class check{
var $name;
function __construct($name){
$this->name=$name;
$this->say();
} function say(){
var_dump("$this->name");
}
}
?>
发现第一个var_dump可以输出  可是第check里那个缺不成求指点!

解决方案 »

  1.   

    是否是decode之后的json数据不能在对象之间传递?
      

  2.   

    $json=json_decode($_POST['text'],true);   //这样试试看
      

  3.   

    你有几个应该注意到而没注意到的问题:
    1、将 json 数据存入数据库,一般是不用解码的。除非 php 程序需要使用该数据
    2、json 数据是支持多种语言编码的,因为他要适应各种环境。并不只是 js+php。
      而 php 提供的 json 操作函数,只支持 utf-8 编码的 json 数据,并且结构上有严格要求
    3、传递变量时,除非特殊需要不能用引号将变量括起
      比如你的 new check("$json"); 当 $json 为数组时,只能传递过去字符串 Array