在循环中保留变量的值


Retaining a variables value in a loop?

在第一个循环迭代中,我希望设置$parentId,这是从对数据库的查询中设置的。

然后,我希望在所有后续的循环迭代中保留第一次循环迭代的$parentId的值。

我试过了,但是它会触发error - unexpected $parentId

正确的方法是什么?

foreach (Config::get('wdt') as $width) {
    $query = Asset::create(array('title' =>  $data["title"]));
    !isset($parentId)$parentId = $query->id();
}

您可以尝试使用三元操作符:

foreach (Config::get('wdt') as $width) {
    $query = Asset::create(array('title' =>  $data["title"]));
    isset($parentId) ? NULL : $parentId = $query->id();
}

你的问题是没有条件。初始化也更好。测试这个:

$parentId = null;
foreach (Config::get('wdt') as $width) {
    $query = Asset::create(array('title' =>  $data["title"]));
    ($parentId === null) ? $parentId = $query->id() : null;
}

我建议您在循环之前初始化变量'parentId',并更改交互的条件,参见:

$parentId = NULL;
foreach (Config::get('wdt') as $width) {
    $query = Asset::create(array('title' =>  $data["title"]));
    ($parentId == NULL) ? $parentId = $query->id() : $parentId;
}