PHP-附加到对象?

PHP-附加到对象?,php,append,Php,Append,我遇到了如何附加到对象的问题 我得到一个错误: Uncaught Error: Cannot use object of type Anteris\Autotask\API\Contacts\ContactEntity as array in... 如果它使用手机和电子邮件If语句删除部件,则工作正常 守则: Create new contact $contact = new Anteris\Autotask\API\Contacts\ContactEntity([ 'id' => 0,

我遇到了如何附加到对象的问题

我得到一个错误:

Uncaught Error: Cannot use object of type Anteris\Autotask\API\Contacts\ContactEntity as array in...
如果它使用
手机
电子邮件
If语句删除部件,则工作正常

守则:

Create new contact
$contact = new Anteris\Autotask\API\Contacts\ContactEntity([
'id' => 0, // Autotask requires that new entities have an ID of 0
'companyID' => intval($Companyid),
'firstName' => $Fornavn,
'lastName' => $Efternavn,
'isActive' => 1,
'phone' => $Telefon,
]);

Check if MobilPhone filled out
if (empty($MobilTelefon)) {
} else {
$contact['mobilePhone'] = $MobilTelefon;
}

Check if Email filled out
if (empty($Email)) {
} else {
$contact['emailAddress'] = $Email;
}

Create in Autotask
$client->contacts()->create( $contact );

在第一行,您正在创建
ContactEntity
类的实例
$contact
是保存类实例的变量<代码>$contact现在是一个对象

但是在生成错误的行中,您将对象用作数组,这是不可能的。使用
->
操作符访问对象属性。使用
[]
符号访问数组元素

在照片中,你可以看到这一点 第42行
mobilePhone
定义为
public?字符串$mobilePhone。对象属性

因此,在您的代码中,不要编写以下内容:

$contact['mobilePhone']=$mobiletelefon

你必须这样写:

$contact->mobilePhone=$MobilTelefon


其他变量也是如此。

此外,您可以重写
if(empty())
语句来检查它们是否为空(
if(!empty($MobilTelefon)){…}
,这样您就不必编写空块了!谢谢,现在一切都很好,并且重写了if语句:)好,消息很清楚,您正在尝试将对象用作数组,这是两个不同的东西。您不显示联系人实体的内容,因此很难提供帮助,但是如果您在该实体中有mobilePhone和emailAddress属性。然后您必须设置属性。假设属性存在并且是公共的,您必须执行类似于
$contact->emailAddress=$email
的操作,而不是尝试将其用作数组。