Php 我的变量有两种类型

Php 我的变量有两种类型,php,arrays,parameters,boolean,Php,Arrays,Parameters,Boolean,我需要你的帮助,因为我面临一个不寻常的问题: 在我的代码中,我有第一个函数,在这个函数中,我用PDO处理一个请求,它返回一个数组,结果是一个名为“result”的变量。 当我对这个变量执行var_dump()时,它会显示: array(4) { ["id_offre_var"]=> string(4) "7061" ["id_offre"]=> string(4) "3216" ["prix"]=> string(5) "29.90" ["prix_public"]=>

我需要你的帮助,因为我面临一个不寻常的问题: 在我的代码中,我有第一个函数,在这个函数中,我用PDO处理一个请求,它返回一个数组,结果是一个名为“result”的变量。 当我对这个变量执行var_dump()时,它会显示:

array(4) { ["id_offre_var"]=> string(4) "7061" ["id_offre"]=> string(4) "3216" ["prix"]=> string(5) "29.90" ["prix_public"]=> string(5) "69.00" }
我有一个数组,没关系

然后,我调用一个名为hydrate()的函数,在其中我放入了变量“result”。但是,在这个函数中,当我对这个参数(我以前的变量“result”)执行var_dump()时,它显示:

array(4) { ["id_offre_var"]=> string(4) "7061" ["id_offre"]=> string(4) "3216" ["prix"]=> string(5) "29.90" ["prix_public"]=> string(5) "69.00" } bool(false)
我的变量现在是一个数组和一个布尔值! 显然,这给我下一步提出了问题

我的第一个功能:

public function getVarianteForNewsletter($idOffre)
{
    $sql = "SELECT id_offre_var, id_offre, prix, prix_public FROM apm_offres_variante
          WHERE id_offre = :offre
          ORDER BY prix
          LIMIT 0,1";
    $stmt = $this->_dal->prepare($sql);
    $stmt->bindValue(":offre", $idOffre, PDO::PARAM_INT);
    $stmt->execute();
    $result = $stmt->fetch(PDO::FETCH_ASSOC);
    var_dump($result);
    $Object = new OffreVariante();
    $this->hydrate($Object, $result);
    return $Object;
}
然后,我的函数为()


最后,这个问题是由foreach()中的$key=>$item引起的。如果我有这个,它不起作用:

foreach ($params as $key=>$param) 
但是,如果我只是这样做的话:

foreach ($params as $param)
我不知道为什么,但我将尝试使用一个简单的FOR循环。
谢谢你的帮助。

你好,纪尧姆先生。如果您共享第一个方法和
hydrome()
方法中的相关代码,这将非常有用。您可能会看到两个不同的
var\u dump
“这不可能是真的。”。可能您正在运行另一个代码。向我们展示整个过程。您的方法
GetVariateForNewsLetter
是否在扩展了Revariante的类中?是的,它不可能是真的,但它不运行其他代码。为了进行测试,在我的函数hydrate()中,我将参数“params”重命名为“paramsarray”,这样它就可以正常工作了。只有当参数被称为“params”时,才出现问题;)
foreach ($params as $param)