Section 14 - Namespace
Naming variables, functions and classes is quite difficult. In addition to considering that the name of the variable should be easy to understand, you also have to worry about whether the name has been used somewhere else. In a The second question is fundamental in small scripts. When you consider reusing your code, code in subsequent projects must avoid using the names you used. Generally speaking, reusable code is always contained in a function or class There are many possible naming conflicts that need to be dealt with. But naming conflicts can also occur between functions and classes. You can try to avoid this by prefixing all classes, or you can use the namespace statement.
The Namespace keyword names a block of code. Outside this code block, the script must use the operator:: plus the name of the namespace to reference this code block. The same method is used to reference static class members. Within the namespace The code does not need to declare the namespace, it defaults to it. This method is better than adding a prefix. Your code will become more compact and readable.
You may wonder whether it is possible to create hierarchical ( Nested) namespace. The answer is no. But you can add a colon after the namespace name, and you can call variables, functions and classes that do not contain a colon in the name again. Colons are allowed in namespaces as long as they are not the first one character and the last character or followed by another colon. Colons in namespace names don't mean anything to PHP, but if you use them to separate logical chunks, they can tell a lot about your code. The parent-child relationship in .
/* Note: You can use this:
namespace animal:dog {}
namespace animal:pig {}
Use a colon to describe parent-child Relationships.
*/
You may not include anything other than function, class, or constant definitions within a namespace statement. This will prevent you from using them to improve older function libraries that use global variables. Namespaces Best suited for object orientation. Constants within a namespace use the same syntax as constants within a class.
Example 6.17 shows how to use a namespace.
Listing 6.17 Using a namespace
namespace core_php:utility
{
class textEngine
{
public function uppercase($text) //uppercase
return(strtoupper($text));
}
}