Javascript 如何在php中声明嵌套对象
嘿,它尝试将简单对象从js转换为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
"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];