PhpRiot
Become Zend Certified

Prepare for the ZCE exam using our quizzes (web or iPad/iPhone). More info...


When you're ready get 7.5% off your exam voucher using voucher CJQNOV23 at the Zend Store

Calculating with currencies

When working with currencies you will sometimes also have to calculate with them. Zend_Currency allows you to do this with some simple methods. The following methods are supported for calculation:

  • add(): This method adds the given currency to the existing currency object.

  • sub(): This method substracts the given currency from the existing currency object.

  • div(): This method divides the given currency from the existing currency object.

  • mul(): This method multiplies the given currency with the existing currency object.

  • mod(): This method calculates the remaining value (modulo) from dividing the given currency from the existing currency object.

  • compare(): This method compares the given currency with the existing currency object. When both values are equal it returns '0'. When the existing currency value is greater than the given, this method will return 1. Otherwise you will get '-1' returned.

  • equals(): This method compares the given currency with the existing currency object. When both values are equal it returns TRUE, otherwise FALSE.

  • isMore(): This method compares the given currency with the existing currency object. When the existing currency is greater than the given one, you will get TRUE in return, otherwise FALSE.

  • isLess(): This method compares the given currency with the existing currency object. When the existing currency is less than the given one, you will get TRUE in return, otherwise FALSE.

As you can see the multiple methods allow any kind of calculation with Zend_Currency. See the next snippets as example:

<?php
$currency 
= new Zend_Currency(
    array(
        
'value'    => 1000,
        
'currency' => 'USD',
    )
);

print 
$currency// Could return '$ 1.000,00'

$currency->add(500);
print 
$currency// Could return '$ 1.500,00'
<?php
$currency_2 
= new Zend_Currency(
    array(
        
'value'    => 500,
        
'currency' => 'USD',
    )
);

if (
$currency->isMore($currency_2)) {
    print 
"First is more";
}

$currency->div(5);
print 
$currency// Could return '$ 200,00'

Zend Framework