나는 어디에서나 보았고 대답을 찾을 수없는 것처럼 보입니다. PHP에서 재귀 객체를 사용하는 것이 안전하거나 좋은 방법인지 궁금합니다.PHP 객체로 재귀 적 속성을 설정하는 것이 안전합니까?
<?php
$bar = new User();
$bar->database->doSomethingForUser();
?>
나 '... ... 포함하는 객체에 대한 참조를 사용하여 속성을 포함하는 다른 개체의 속성으로
<?php
class User
{
public $database;
public function __construct() {
$this->database = new Database($this);
}
}
Class Database
{
private $user;
public function __construct(User $user) {
$this->user = $user;
}
public function doSomethingForUser() {
// Call db or get info for this user
}
}
를 객체를 생성 한 후 다음과 같이 사용하려면 array_multisort (특히 "PHP 치명적인 오류 : 중첩 수준이 너무 깊음 - 재귀 종속성"과 같은 특정 함수를 사용하여 문제가 발생했음을 알게되었습니다.) 객체 배열을 정렬하려고 할 때 var_dump를 사용하면 일부가 표시됩니다. 반복적 인 속성 ...
어떤 도움도 감사합니다 iated
당신이하고있는 일을 알고 있고 그 문제를 해결하는 방법을 아는 것이 안전합니다. 분명히 array_multisort를 사용할 경우 순환 참조를 사용하지 않습니다. – gcochard
그게 내가 좀 혼란스러워하는 곳이라고 생각해. 원형 참조를 포함하는 객체의 배열을 정렬하려고 할 때 어떻게 처리 할 것 인가? –
간단합니다. 모든 단계를 거치지 않아도된다고 가정하면 최상위 배열을 정렬하면됩니다. 재귀 적으로 정렬 할 필요가 없습니다. 두 객체를 정확하게 비교하는 비교 함수와 함께'usort'와 같은 것을 사용하십시오. – cHao