以下php引发了此错误...
致命错误:调用成员函数 findOne()在非对象中 j:\ Xampplite文件\ htdocs中\ Produkshunator \ home.back.php 在第27行
这是php ...
<?php
/***********************************************
*
* Make Connection
*
*************************************************************/
$conn = new Mongo();
if($_POST['mod'] == "add") {
add_data();
}
/***********************************************
*
* Add data
*
*************************************************************/
function add_data() {
$doc = array("email" => $_POST['email']);
$prod = array("productions");
/*line 27 -->*/ $category_exists = $conn -> registration -> users -> findOne($doc, $prod); // <--- line 27
if (in_array($_POST['new_title'], $category_exists['productions'])){
$response = array("errormsg" => "That production already exists, please use a unique title.");
} else {
$newdata = array('$push' => array("productions" => $_POST['new_title']));
$doc = array("email" => $_POST['email']);
$conn -> registration -> users -> update($doc, $newdata);
$response = array("production" => $_POST['new_title']);
}
reply($response);
}
/***************************************************
*
* Reply
*
***************************************************************/
function reply($response) {
echo json_encode($response);
}
?>
...但是...当我注释掉对add_data()及其函数声明的调用时,它的所有部分都是'if'语句,它可以毫无障碍地工作......
if($_POST['mod'] == "add") {
// add_data();
// }
/***********************************************
*
* Add data
*
*************************************************************/
// function add_data() {
是否有解决方法,或者只是我缺少的东西。因为否则这会非常麻烦,非常快。
答案 0 :(得分:1)
除非声明global $variable
,否则无法访问在函数外声明的变量。请参阅variable scope上的文档。
$foo = "foo";
# Doesn't print anything
function print_foo(){
print $foo;
}
# Prints "foo"
function print_foo(){
global $foo;
print $foo;
}