通过JSON在JS中使用PHP方法?
我有一个PHP对象数组,它有一个函数getValue,它获取对象的值。 因此,如果我想在PHP中获得它的值,我只需:通过JSON在JS中使用PHP方法?,php,javascript,json,Php,Javascript,Json,我有一个PHP对象数组,它有一个函数getValue,它获取对象的值。 因此,如果我想在PHP中获得它的值,我只需: echo mapArray[2][2]->getValue; 我使用以下命令将数组传递给JS: var mapArray = <?php echo json_encode($mapArray); ?> 我得到了一个完整的“object”字符串数组。如果我尝试: document.write(mapArray.[2][2].getValue); 我得到“未定
echo mapArray[2][2]->getValue;
我使用以下命令将数组传递给JS:
var mapArray = <?php echo json_encode($mapArray); ?>
我得到了一个完整的“object”字符串数组。如果我尝试:
document.write(mapArray.[2][2].getValue);
我得到“未定义”
为什么会发生这种情况?我是否必须模仿PHP数据对象,以便在JS中识别方法,或者JSON编码可以帮我解决这个问题?当您将数组序列化为JSON并将其传递给客户端进行JavaScript评估时,您只能传递数组及其内容的表示形式(即属性值) 想象一下,要创建所有PHP函数的JavaScript版本需要什么
json_encode
本质上必须是一个编译器,能够理解所有可能的PHP功能并将其转换为等效的JavaScript功能
可以想象这样一种东西适用于简单的函数,但它如何适用于更复杂的代码呢?如果getValue
函数调用一些库PHP代码来建立MySQL连接,检索数据,并使用JavaScript中不存在的内置PHP函数执行计算,那么糟糕的json\u encode
函数必须将整个PHP语言转换为JavaScript
不,JSON中只能得到数据。不是功能
对于您描述的特定情况,如果您有一些带有访问器方法的私有数据,只需创建一个数组(或对象),该数组描述您希望返回到浏览器的实际数据,然后调用
json\u encode
所有json\u encode
都返回表示您的数据的字符串
想象一下,要创建所有PHP函数的JavaScript版本需要什么json_encode
本质上必须是一个编译器,能够理解所有可能的PHP功能并将其转换为等效的JavaScript功能
可以想象这样一种东西适用于简单的函数,但它如何适用于更复杂的代码呢?如果getValue
函数调用一些库PHP代码来建立MySQL连接,检索数据,并使用JavaScript中不存在的内置PHP函数执行计算,那么糟糕的json\u encode
函数必须将整个PHP语言转换为JavaScript
不,JSON中只能得到数据。不是功能
对于您描述的特定情况,如果您有一些带有访问器方法的私有数据,只需创建一个数组(或对象),该数组描述您希望返回到浏览器的实际数据,然后再调用
json\u encode
第二个代码块的渲染结果是什么?在第一段代码中,我假设您的意思是mapArray[2][2]>getValue()
。如果getValue
是一个简单的属性,而不是一个方法,那么问题的其余部分就没有意义了。第二个代码块的渲染结果是什么?在第一段代码中,我假设您的意思是mapArray[2][2]>getValue()
。如果getValue
是一个简单的属性,而不是一个方法,那么问题的其余部分就没有意义了。谢谢你的解释。谢谢你的解释。
document.write(mapArray.[2][2].getValue);