<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title>Rules</title> </head> <body><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="userlandnaming.globalnamespace.html">Global Namespace</a></div> <div class="next" style="text-align: right; float: right;"><a href="userlandnaming.tips.html">Tips</a></div> <div class="up"><a href="userlandnaming.html">Userland Naming Guide</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div><hr /><div id="userlandnaming.rules" class="section"> <h2 class="title">Rules</h2> <p class="para"> The following list gives an overview of which rights the PHP project reserves for itself, when choosing names for new internal identifiers. The definitive guide is the official <a href="http://git.php.net/?p=php-src.git;a=blob_plain;f=CODING_STANDARDS;hb=HEAD" class="link external">» CODING STANDARDS</a>: </p> <ul class="itemizedlist"> <li class="listitem"> <p class="para"> PHP owns the top-level namespace but tries to find decent descriptive names and avoid any obvious clashes. </p> </li> <li class="listitem"> <p class="para"> Function names use underscores between words, while class names use both the <em>camelCase</em> and <em>PascalCase</em> rules. </p> </li> <li class="listitem"> <p class="para"> PHP will prefix any global symbols of an extension with the name of the extension. (In the past, there have been numerous exceptions to this rule.) Examples: </p> <ul class="itemizedlist"> <li class="listitem"><p class="para"> <span class="function"><a href="function.curl-close.html" class="function">curl_close()</a></span></p></li> <li class="listitem"><p class="para"> <span class="function"><a href="function.mysql-query.html" class="function">mysql_query()</a></span></p></li> <li class="listitem"><p class="para">PREG_SPLIT_DELIM_CAPTURE</p></li> <li class="listitem"><p class="para">new DOMDocument()</p></li> <li class="listitem"> <p class="para"> <span class="function"><a href="function.strpos.html" class="function">strpos()</a></span> (example of a past mistake) </p> </li> <li class="listitem"><p class="para">new SplFileObject()</p></li> </ul> </li> <li class="listitem"> <p class="para"> Iterators and Exceptions are however simply postfixed with "<em>Iterator</em>" and "<em>Exception</em>." Examples: </p> <ul class="itemizedlist"> <li class="listitem"><p class="para"><a href="class.arrayiterator.html" class="classname">ArrayIterator</a></p></li> <li class="listitem"><p class="para"><a href="class.logicexception.html" class="classname">LogicException</a></p></li> </ul> </li> <li class="listitem"> <p class="para"> PHP reserves all symbols starting with <em>__</em> as magical. It is recommended that you do not create symbols starting with <em>__</em> in PHP unless you want to use documented magical functionality. Examples: </p> <ul class="itemizedlist"> <li class="listitem"><p class="para"><a href="language.oop5.overloading.html#object.get" class="link">__get()</a></p></li> <li class="listitem"><p class="para"> <span class="function"><a href="function.autoload.html" class="function">__autoload()</a></span></p></li> </ul> </li> </ul> </div><hr /><div class="manualnavbar" style="text-align: center;"> <div class="prev" style="text-align: left; float: left;"><a href="userlandnaming.globalnamespace.html">Global Namespace</a></div> <div class="next" style="text-align: right; float: right;"><a href="userlandnaming.tips.html">Tips</a></div> <div class="up"><a href="userlandnaming.html">Userland Naming Guide</a></div> <div class="home"><a href="index.html">PHP Manual</a></div> </div></body></html>