Javascript 如何在php中声明嵌套对象

Javascript 如何在php中声明嵌套对象,javascript,php,Javascript,Php,嘿,它尝试将简单对象从js转换为php,并得到错误 这是对象的数组: "signatures": [ { "id": 5, "flowID": 1, "fileID": 1, "type": "partner", "page": 1, "position": { "x": 444, "y": 111 }, "siz

嘿,它尝试将简单对象从js转换为php,并得到错误

这是对象的数组:

    "signatures": [
{
        "id": 5,
        "flowID": 1,
        "fileID": 1,
        "type": "partner",
        "page": 1,
        "position": {
            "x": 444,
            "y": 111
        },
        "size": {
            "width": 555,
            "height": 321
        }
    }, {
        "id": 6,
        "flowID": 1,
        "fileID": 1,
        "type": "partner",
        "page": 1,
        "position": {
            "x": 444,
            "y": 111
        },
        "size": {
            "width": 555,
            "height": 321
        }
    }]
我转换的php代码:

类签名
{
公费$id;
公共$flowID;
public$fileID;
公共$类型;
公众$page;
公众职位;
公帑数额;;
}
$signature=新签名();
$signature->id=5;
$signature->flowID=1;
$signature->fileID=1;
$signature->type='partner';
$signature->position->x=50;
$signature->position->y=50;
$signature->size->height=200;
$signature->size->width=200;
如何使位置和大小嵌套在php中? 我试图创建新类,但问题是我不能创建“大小”和“位置”属性。 谢谢,这是我第一次使用php

错误:

Warning: Creating default object from empty value in /Users/baruchmashasha/Sites/index.php on line 25

Warning: Creating default object from empty value in /Users/baruchmashasha/Sites/index.php on line 27

您需要为position和size字段创建复杂的类

泛型概念类
类点{
公共$x;//int
公共$y;//int
函数_u构造(){
$this->x=0;
$this->y=0;
}
公共静态函数create($x,$y){
$instance=new self();
$instance->x=$x;
$instance->y=$y;
返回$instance;
}
}
类矩形{
公共$width;//int
公共$height;//int
函数_u构造(){
$this->width=0;
$this->height=0;
}
公共静态函数创建($width,$height){
$instance=new self();
$instance->width=$width;
$instance->height=$height;
返回$instance;
}
}
数据传输对象
类签名{
public$id;//int
public$flowID;//int
public$fileID;//int
public$type;//字符串
public$page;//int
public$position;//点
公共$size;//矩形
函数_u构造(){
$this->id=0;
$this->flowID=0;
$this->fileID=0;
$this->type=NULL;
$this->page=0;
$this->position=新点();
$this->size=新矩形();
}
}
类签名所有者{
public$signatures;//个签名
函数_u构造(){
$this->signatures=array();
}
}
用法
$signatureHolder=new signatureHolder();
$signature1=新签名();
$signature1->id=5;
$signature1->flowID=1;
$signature1->fileID=1;
$signature1->type='partner';
$signature1->position=Point::create(444111);
$signature1->size=Rectangle::create(555321);
数组推送($signatureHolder->signatures,$signature1);
$signature2=新签名();
$signature2->id=6;
$signature2->flowID=1;
$signature2->fileID=1;
$signature2->type='partner';
$signature2->position=Point::create(444111);//或者你可以设置x和y
$signature2->size=Rectangle::create(555321);//也可以设置宽度和高度
数组推送($signatureHolder->signatures,$signature2);

echo’虽然Polywhirl先生的答案没有错,但有一个更简单、更脏的选项:


这不是更好/更糟,只是不同而已。我认为这种解决方案适用于小型解决方案。如果你有一个重要的类/工作量,Polywhirls先生的解决方案会更简洁。

使用PHP语法,而不是Javascript。
签名。$position
签名。$size
字段应该是复杂的对象。@Mr.Polywhirl我编辑了我的帖子这是否回答了你的问题?嘿@PhilippMaurer谢谢你,但我有我的答案。@WebDeveloper我实际上实现了类构造函数。我一时忘记了它们……嘿,对象数组呢?它的工作原理是一样的吗@先生Polywhirl@WebDeveloper将签名包装在一个数组中以表示JSON。
$signature = new Signatures();
$signature->id = 5;
$signature->flowID = 1;
$signature->fileID = 1;
$signature->type = 'partner';
$signature->position = (object)['x' => 50, 'y' => 50];
$signature->size = (object)['height' => 200, 'width' => 200];