Я новичок в php - объектах и массивах, особенно. Исходя из мира JavaScript, у меня проблемы с пониманием правильного пути построения объектов, которые могут быть легко повторены.
Я хотел бы создать объект (или массив - хотя я подозреваю, что объект будет более подходящим) со следующей структурой:
$client_body:
$cst:
$title: 'Unique string'
$copy: function_result()
$ser:
$title: 'Unique string'
$copy: function_result()
$imp
$title: 'Unique string'
$copy: function_result()
...
Я пытался с вариациями в следующем, но с многочисленными ошибками:
$client_body = new stdClass();
$client_body->cst->title = 'Client case study';
$client_body->cst->copy = get_field('client_cst');
$client_body->ser->title = 'Our service';
$client_body->ser->copy = get_field('client_ser');
...
И кажется, что, используя этот подход, мне пришлось бы использовать new stdClass
вызов new stdClass
с каждым новым дополнением верхнего уровня, что кажется немного подробным.
Может ли кто-нибудь указать мне в правильном направлении?
Вы можете просто придать массив массиву объекту:
$client_body = (object)array(
"cst" => (object)array(
"title" => "Unique string",
"copy" => function_result()
)
);
$client_body
будет реальным объектом после выполнения этого кода. Как предположил Бармар, массив является предпочтительным и наиболее используемым способом.
Или вы можете использовать json_encode ($ client_body, TRUE);
Вы можете попробовать этот класс объектов больше ООП:
<?php
class ClientBody{
protected $cst;
protected $ser;
protected $imp;
public function __construct($cst = '', $ser ='', $imp = '')
{
$this->cst = $cst;
$this->ser = $ser;
$this->imp = $imp;
}
public function getCst()
{
return $this->cst;
}
public function getSer()
{
return $this->ser;
}
public function getImp()
{
return $this->imp;
}
public function setCst($value)
{
$this->cst = $value;
}
public function setSer($value)
{
$this->ser = $value;
}
public function setImp($value)
{
$this->imp = $value;
}
}
$myObject = new ClientBody('toto', 'titi', 'tata');
echo $myObject->getCst(); // output 'toto'
echo $myObject->getSer(); // output 'titi'
echo $myObject->getImp(); // output 'tata'