This was answered in this question here: link
But the general point is that until PHP 5.3 you could not use const within the global scope, it was restricted to object scopes (a class for example). It served to define a local constant variable within the scope of this object.
The define has the same purpose, but it can only be used in global scope, and its use should be only to set global settings that will affect the application as a whole.
The examples of const and define vary widely, for example, const can be used within a math class to store the value of a number pi, for example, since it will only be allocated when the code compiles.
define can be used to set a global parameter of the application, a skin for example, or some system configuration that needs to be read by the entire code. Since it is created at runtime you will have no problems if the code does not go through that part.