<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/userlandnaming.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'userlandnaming.rules.php',
    1 => 'Regeln',
    2 => 'Regeln',
  ),
  'up' => 
  array (
    0 => 'userlandnaming.php',
    1 => 'Userland-Namensregeln',
  ),
  'prev' => 
  array (
    0 => 'userlandnaming.globalnamespace.php',
    1 => 'Globaler Namensraum',
  ),
  'next' => 
  array (
    0 => 'userlandnaming.tips.php',
    1 => 'Tipps',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'appendices/userlandnaming.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="userlandnaming.rules" class="section">
  <h2 class="title">Regeln</h2>
  <p class="para">
   Die folgende Liste gibt einen Überblick über die Rechte, die das PHP
   Projekt bei der Auswahl von Namen für neue interne Bezeichner für
   sich selbst in Anspruch nimmt. Die definitiven Vorgaben finden sich 
   in den offiziellen 
   <a href="https://github.com/php/php-src/raw/master/CODING_STANDARDS.md" class="link external">&raquo;&nbsp;CODING STANDARDS</a>:
  </p>

  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     PHP ist Eigentümer des globalen Namensraumes, versucht aber
     vernünftige sprechende Namen zu finden, und offensichtliche
     Konflikte zu vermeiden.
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     Funktionsnamen benutzten Unterstriche als Trennzeichen zwischen
     Wörtern, während Klassennamen den <code class="literal">camelCase</code> und
     <code class="literal">PascalCase</code> Regeln folgen.
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     PHP wird jedem globalen Symbol einer Erweiterung den Namen der
     Erweiterung voranstellen (in der Vergangenheit gab es allerdings
     zahlreiche Abweichungen von dieser Regel), z.B.:
    </p>

    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><span class="function"><a href="function.curl-close.php" class="function">curl_close()</a></span></p></li>
     <li class="listitem"><p class="para"><span class="function"><a href="function.mysql-query.php" 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.php" class="function">strpos()</a></span> (Beispiel einer früheren Abweichung)
      </p>
     </li>
     <li class="listitem"><p class="para">new SplFileObject()</p></li>
    </ul>
   </li>
   <li class="listitem">
    <p class="para">
     Bei Iteratoren und Ausnahmen wird dagegen einfach ein
     &quot;<code class="literal">Iterator</code>&quot; oder &quot;<code class="literal">Exception</code>&quot;
     an den Namen angehängt, z.B.:
    </p>
    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><span class="classname"><a href="class.arrayiterator.php" class="classname">ArrayIterator</a></span></p></li>
     <li class="listitem"><p class="para"><span class="classname"><a href="class.logicexception.php" class="classname">LogicException</a></span></p></li>
    </ul>
   </li>
   <li class="listitem">
    <p class="para">
     PHP reserviert alle Symbole, die mit zwei Unterstrichen
     <code class="literal">__</code> beginnen, für interne Zwecke.
     Sie sollten nur dann Namen mit <code class="literal">__</code>
     beginnen lassen, wenn Sie eine der dokumentierten
     &quot;magischen&quot; Funktionalitäten in PHP nutzen wollen, z.B:
    </p>
    <ul class="itemizedlist">
     <li class="listitem"><p class="para"><a href="language.oop5.overloading.php#object.get" class="link">__get()</a></p></li>
     <li class="listitem"><p class="para"><span class="function"><a href="function.autoload.php" class="function">__autoload()</a></span></p></li>
    </ul>
   </li>
  </ul>
 </div><?php manual_footer($setup); ?>