我正在使用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?