php - PHP 中类函数的类型转换

标签 php symfony casting

我正在使用 Symfony 和 Doctrine,我需要比较 JSON 中的对象是否与数据库中的对象具有相同的属性。

所以我已经正确地完成了所有操作,但由于我是 PHP 新手,我无法访问对象的属性,因为我不知道如何将前一行转换为产品。

$oldProduct = new Product();
$oldProduct = $repo->findBy( array('nom' => $product->getNom()));
$oldProduct->

我尝试添加

$oldProduct = Product::$repo->findBy( array('nom' => $product->getNom()));

但这不起作用

我确定这个问题已经得到解答,但我找不到关键字来解决类似的问题。

提前致谢

最佳答案

您可以通过添加强制类型转换:

$oldProduct = $repo->findBy(array('nom' => $product->getNom()));
/* @var Product $oldProduct */
$oldProduct->myAutoCompletedFunction...

或者:

$oldProduct = $repo->findBy(array('nom' => $product->getNom()));
if (!$oldProduct instanceof Product) {
    throw new \LogicException('Old product not found.');
}
$oldProduct->myAutoCompletedFunction...

第二个版本更好,因为它不会对静态分析器发出警告。

PS:请注意,您可以将包含 @var 注释的 block 放在第一行的末尾,而不用单独一行。

关于php - PHP 中类函数的类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44026615/

相关文章:

PHP - 将转换后的图像保存到文件夹中

php - 如何使用 PHP 进行单点登录?

php - CLI 中的 $_SERVER 文档根目录

php - Swift_Mailer Symfony 3 添加事件监听发送事件

javascript - 打开具有动态值的模态 [symfony2]

ajax - 在 Symfony2 中测试 AJAX/XMLHttpRequest 页面的功能

C 指针数组、转换和/或内存

PHP/甲骨文 : Time representation

java - 为什么仅在 Android 4 中出现 java.lang.Object[] cannot be cast to java.lang.String[][] 错误?

javascript - 使用 NaN 作为函数结果而不是必要的整数的问题