我有一个正在尝试更新的类,我被要求通过引用来演示传递对象,但我不确定这与下面的类有什么关系,有人能给我一些指示吗?我想我已经准备好用像getManegement()这样的方法来做这件事了,如果你能告诉我需要做什么的一些想法,也许是一些链接或代码示例,那就太好了。
namespace App\Office\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* Class Office
* @package App\Office\Entity
* @ORM\Entity()
* @ORM\Table(name="office")
*/
class Office
{
/**
* @ORM\Column(type="string", length=100)
*/
public $name;
/**
* @ORM\OneToMany(targetEntity="App\Office\Entity\SkillSet", mappedBy="office")
*/
public $skillSet = [];
/**
* @ORM\OneToMany(targetEntity="App\Office\Entity\Management", mappedBy="office")
*/
public $management = [];
/**
* @ORM\OneToMany(targetEntity="App\Office\Entity\Staff", mappedBy="office")
*/
public $staff = [];
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getName()
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name)
{
$this->name = $name;
}
/**
* @return array
*/
public function getSkillSets()
{
return $this->skillSet;
}
/**
* @param array $skillSet
*/
public function setSkillSets(array $skillSet)
{
$this->skillSet = $skillSet;
}
/**
* @return array
*/
public function getManagements()
{
return $this->management;
}
/**
* @param array $management
*/
public function setManagements(array $management)
{
$this->management = $management;
}
/**
* @return array
*/
public function getStaff()
{
return $this->staff;
}
/**
* @param array $staff
*/
public function setStaff(array $staff)
{
$this->staff = $staff;
}
/**
* add new skillSet, merging with existing
* @param array $skillSet
*/
public function addSkillSets(array $skillSet)
{
$this->skillSet = array_merge($this->skillSet, $skillSet);
}
/**
* @param int $management
*/
public function addManagement(int $management)
{
$this->management[] = $management;
}
/**
* @param int $staff
*/
public function addStaff(int $staff)
{
$this->staff[] = $staff;
}
}发布于 2019-11-07 05:12:26
不确定你被要求做什么。如果你想通过引用传递对象属性,你应该像这样调整你的代码:
/**
* @return array
*/
public function &getSkillSets(): array
{
return $this->skillSet;
}无论你在哪里使用它,都应该是:
$myValue = &$office->getSkillSets();你可以在这里阅读更多内容:https://www.php.net/manual/en/language.references.return.php
注意,如果其中一个属性已经是一个对象,那么使用上面的语法是没有用的,因为在中,默认情况下对象是通过引用传递的。
https://stackoverflow.com/questions/58738422
复制相似问题