Javascript 将带有函数的对象从PHP传递到JS

Javascript 将带有函数的对象从PHP传递到JS,javascript,php,jquery,Javascript,Php,Jquery,我创建了一个jQuery插件,它以对象的形式接受选项。如果我初始化对象客户端,我会执行以下操作 $(selector).myPlugin({ opt: value, id: 2, onclose: function () {}, }); 我的职能部门会将选项解释为 1. {opt: string(value), id: int(2), onclose: function () {}} 但是,插件声明是在服务器端进行的,我使用json\u encode将一个PHP关联数

我创建了一个jQuery插件,它以对象的形式接受选项。如果我初始化对象客户端,我会执行以下操作

$(selector).myPlugin({
    opt: value,
    id: 2,
    onclose: function () {},
});
我的职能部门会将选项解释为

1. {opt: string(value), id: int(2), onclose: function () {}}
但是,插件声明是在服务器端进行的,我使用
json\u encode
将一个PHP关联数组转换为插件选项所需的对象。这里的问题是,我的插件将声明识别为

2. {opt: string(value), id: string(2), onclose: string(function () {})}

我想知道的是,在将数组编码为JSON之前,如何以JS将其解释为1的方式从PHP传递关联数组:

$opts = array(
    'opt' => 'value',
    'id' => '2',
    'onclose' => 'function() {}'
);

$opts['id'] = (int)$opts['id'];

echo json_encode($opts);

或者更好的方法是,在构建
$opts
数组之前/期间为
id
强制转换值。

解析并将其作为JSON传递,这样您就可以在这两种格式中来回转换它languages@darkbee这就是问题所在,我得到了2中的对象,这是不正确的。它将函数解释为字符串它不应该将PHP中的整数编码为字符串。@LukeMadhanga我的错,下次必须阅读完整的问题'-_