首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理数组值的方式与手动输入不同

处理数组值的方式与手动输入不同
EN

Stack Overflow用户
提问于 2015-10-24 04:11:57
回答 1查看 25关注 0票数 0

我有这个函数:

代码语言:javascript
复制
public function getReward($formattedArray, $key){
    $id = $formattedArray[$key][0];
    //dd($id); //Returns 1
    $reward = Item::find($id); 
    return $reward;
}

问题部分是:

代码语言:javascript
复制
$reward = Item::find($id); 

我让dd()作为id变量,它返回期望值1,然后在最后的静态find函数中使用该值。然后我收到错误,使用这个函数“尝试获取非对象的属性”。

然后我这样做:

代码语言:javascript
复制
$reward = Item::find($id); //Changed to...
$reward = Item::find(1);

唯一的区别是我手动将整数1输入到静态find函数中。代码运行得很好,没有错误,而且我能够访问返回的对象。

工作示例:

代码语言:javascript
复制
$reward = Item::find(1); 
return $reward;

工作示例:

代码语言:javascript
复制
$reward = Item::find("1"); 
return $reward;

非工作示例:

代码语言:javascript
复制
$reward = Item::find($formattedArray[$key][0]); 
return $reward;

我也尝试过像这样转换成一个整数:

代码语言:javascript
复制
$id = $formattedArray[$key][0];
    $idInt = (int) $id;
    $reward = Item::find($idInt);
    return $reward;
EN

回答 1

Stack Overflow用户

发布于 2015-10-24 04:39:06

我认为$id,你得到的不是对象类型。要确认这一点,请使用var_dump(),因为您的Item::find()函数试图访问某些不可访问的字段。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33310647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档