没有事先做过var_dump就无法获得PHP对象属性

时间:2018-07-27 17:04:28

标签: php slim braintree

我正在使用Braintree的API从订户那里获取信息:

$result = Braintree_Subscription::find('123456');
var_dump($result);

如果运行此命令,则会以以下形式获得预期的对象:

object(Braintree\Subscription)[256]
protected '_attributes' => 
array (size=31)
  'addOns' => 
    array (size=0)
      empty
  'balance' => string '0.00' (length=4)
  'billingDayOfMonth' => int 19
  'nextBillingDate' => 
    object(DateTime)[249]
      public 'date' => string '2018-08-19 00:00:00.000000' (length=26)
      public 'timezone_type' => int 3
      public 'timezone' => string 'UTC' (length=3)

我正在尝试获取下一个结算日期,因此我尝试了以下操作:

$nextBillingDate = $result->nextBillingDate->date;
var_dump($nextBillingDate);

运行此命令时,我会得到NULL。

Test/TestSubscriptionController.php:23:null

但是,如果我这样写:

$nb = $result->nextBillingDate;

var_dump($nb);

$nextBillingDate = $result->nextBillingDate->date;

var_dump($nextBillingDate);

然后,第一个var_dump返回nextBillingDate对象,然后第二个var_dump实际上返回我需要的字符串。

Test/TestSubscriptionController.php:19:
object(DateTime)[249]
  public 'date' => string '2018-08-19 00:00:00.000000' (length=26)
  public 'timezone_type' => int 3
  public 'timezone' => string 'UTC' (length=3)

/Test/TestSubscriptionController.php:23:string '2018-08-19 00:00:00.000000' (length=26)

如果我删除

var_dump($nb)

然后我再次得到NULL。

如何获取下一个结算日期的字符串而不必先在对象上执行var_dump?

0 个答案:

没有答案