반응형
PHP에서 객체 요소를 배열에 추가하려면 어떻게 해야 합니까?
저는 PHP를 사용하고 있습니다.개체 배열이 있으므로 개체 끝에 개체를 추가하려고 합니다.
$myArray[] = null; //adds an element
$myArray[count($myArray) - 1]->name = "my name"; //modifies the element I just added
위의 것은 기능적이지만, 그것을 더 깨끗하고 읽을 수 있는 방법이 있습니까?한 줄 정도?
그냥 하기:
$object = new stdClass();
$object->name = "My name";
$myArray[] = $object;
먼저 개체를 생성해야 합니다.new
선)을 누른 다음 배열의 끝으로 밀어 넣습니다(더[]
선)을 선택합니다.
다음과 같은 작업도 수행할 수 있습니다.
$myArray[] = (object) ['name' => 'My name'];
하지만 저는 그것이 더 간결할지라도 그것이 그렇게 읽을 수 없다고 주장할 것입니다.
제가 발견한 깨끗한 방법은 다음과 같습니다.
$myArray = [];
array_push($myArray, (object)[
'key1' => 'someValue',
'key2' => 'someValue2',
'key3' => 'someValue3',
]);
return $myArray;
당신은 정말 물건이 필요합니까?다음은 어떻습니까?
$myArray[] = array("name" => "my name");
2차원 배열을 사용하면 됩니다.
출력(var_dump):
array(1) {
[0]=>
array(1) {
["name"]=>
string(7) "my name"
}
}
다음과 같이 마지막 항목에 액세스할 수 있습니다.
echo $myArray[count($myArray) - 1]["name"];
다음과 같은 것:
class TestClass {
private $var1;
private $var2;
private function TestClass($var1, $var2){
$this->var1 = $var1;
$this->var2 = $var2;
}
public static function create($var1, $var2){
if (is_numeric($var1)){
return new TestClass($var1, $var2);
}
else return NULL;
}
}
$myArray = array();
$myArray[] = TestClass::create(15, "asdf");
$myArray[] = TestClass::create(20, "asdfa");
$myArray[] = TestClass::create("a", "abcd");
print_r($myArray);
$myArray = array_filter($myArray, function($e){ return !is_null($e);});
print_r($myArray);
저는 배열보다 이 구성이 더 좋은 상황이 있다고 생각합니다.모든 검사 로직을 클래스로 이동할 수 있습니다.
여기서 array_filter $myArray를 호출하기 전에 3개의 요소가 있습니다.두 개의 올바른 개체와 NULL. 호출 후에는 두 개의 올바른 요소만 유지됩니다.
언급URL : https://stackoverflow.com/questions/14572313/in-php-how-can-i-add-an-object-element-to-an-array
반응형
'source' 카테고리의 다른 글
CSS에서 div 배경색을 투명하게 만드는 방법 (0) | 2023.08.17 |
---|---|
SqlAlchemy로 업스타트하는 방법은 무엇입니까? (0) | 2023.08.17 |
변수가 정의되지 않은 동안 - 대기 (0) | 2023.08.17 |
ASP의 "보기/공유" 폴더에 하위 디렉토리를 추가하는 중입니다.Net MVC 및 보기 호출 (0) | 2023.08.17 |
Android 단편 및 애니메이션 (0) | 2023.08.17 |