php - How to safely chain methods? -
is there way "safely" chain methods in php , return null
if previous method returns null
? otherwise, error thrown: trying property on non-object
;
for example, following code checks whether customer's phone number has changed using quickbooks sdk. don't have control on these methods.
$customer->getprimaryphone()
return object since form wouldn't have been submitted otherwise, $old->getprimaryphone()
may return null
if no phone number existed previously.
the following required phone number:
$old->getprimaryphone()->getfreeformnumber()
if getprimaryphone()
returns null, error thrown.
my question is: how avoid code repition in following case?
if (!empty($old->getprimaryphone())) { if ($customer->getprimaryphone()->getfreeformnumber() !== $old->getprimaryphone()->getfreeformnumber()) { // repetive code here } } else { // repetive code here }
i'd inclined implement equals
method on phonenumber
class (or whatever it's called). example
public function equals(phonenumber $othernumber) { return $othernumber !== null && $this->getfreeformnumber() === $othernumber->getfreeformnumber(); }
then can use
if (!$customer->getprimaryphone()->equals($old->getprimaryphone())
if you've got other logic needs applied (as indicated in comment arrays), can implement in equals
method.
Comments
Post a Comment