The concept behind both PHP encoders is that you run them on a PHP script, or a whole project of scripts, and they literally turn the code into seeming garbage that still executes the same as an unencoded script.
To allow encoded scripts to execute like unencoded scripts, a special script loader is required - this sits inside PHP itself, and so is a seamless process. Zend's loader is cleverly integrated into their free Zend Optimizer program.
All PHP encoders support functionality such as limiting scripts to running on just a certain computer or computers, making files expire after a certain date, etc - they give you a lot of flexibility in your encoding choices.
My advice is to check around, find something that works for your needs, then give it a try. At the end of the day, cost is most likely going to be the most important factor!