Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Eclipse中的php FETCH_类和自动完成_Php_Autocomplete_Pdo_Eclipse Pdt_Fetchall - Fatal编程技术网

Eclipse中的php FETCH_类和自动完成

Eclipse中的php FETCH_类和自动完成,php,autocomplete,pdo,eclipse-pdt,fetchall,Php,Autocomplete,Pdo,Eclipse Pdt,Fetchall,我不熟悉PHP和PDO。我正在使用EclipsePDT $stmt = $pdo->prepare("SELECT * from articolo"); $stmt->execute(); $result = $stmt->fetchAll(PDO::FETCH_CLASS, "Articolo"); 之后,我希望能够键入: $result[0]-> 然后按下ctrl+SpaceEclipse,就会弹出包含该类Articolo的所有成员和函数的自动完成窗口 但是什么也

我不熟悉PHP和PDO。我正在使用EclipsePDT

$stmt = $pdo->prepare("SELECT * from articolo");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_CLASS, "Articolo");
之后,我希望能够键入:

$result[0]->
然后按下ctrl+SpaceEclipse,就会弹出包含该类Articolo的所有成员和函数的自动完成窗口

但是什么也没发生,好像IDE不知道$result的类一样。 我做错什么了吗? 也许需要给(Articolo)投$result

做:

$var = new Articolo()
$var->

自动完成弹出窗口正确显示。

假设查询成功并返回了超过1行,
$result
包含大量对象。每个对象的类型均为Articolo


要访问对象的方法,必须执行以下操作:


$result=$stmt->fetchAll(PDO::FETCH_类,“Articolo”)


上述代码说明:

  • 获取数据,以便
    $result
    应包含Articolo对象数组
  • 循环遍历每个对象并调用Articolo类中存在的函数名
  • IDE(Eclipse)无法识别Articolo类中的函数的原因是,您试图从
    $result
    变量调用函数,该变量不是Articolo类的类型


    一些堆栈溢出使用技巧:

  • 始终使用右上角的搜索。很多人都遇到过可能对你有帮助的问题
  • 总是看一看
  • 反馈&如果需要,请始终询问更多问题 我找到了一个解决方案:

    $articolo = new Articolo();
    $stmt = $pdo->prepare("SELECT * from articolo");
    $stmt->setFetchMode(PDO::FETCH_INTO, $articolo);
    $stmt->execute();           
    
    while ($stmt->fetch()) {
        $articoli[] = clone $articolo;
    }           
    return $articoli;
    

    我敢打赌,您只需要给Eclipse一个类型提示。我不是Eclipse用户,但您通常使用phpdoc并按照以下方式进行操作:

    ...
    $result = $stmt->fetchAll(PDO::FETCH_CLASS, "Articolo");
    /** @var $record Articolo */
    $record = $result[0];
    

    谢谢你的建议,但是Eclipse一直没有在对象上弹出自动完成。
    ...
    $result = $stmt->fetchAll(PDO::FETCH_CLASS, "Articolo");
    /** @var $record Articolo */
    $record = $result[0];