<?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 => 'zh',
  ),
  'this' => 
  array (
    0 => 'userlandnaming.rules.php',
    1 => '规则',
    2 => '规则',
  ),
  'up' => 
  array (
    0 => 'userlandnaming.php',
    1 => '用户空间命名指南',
  ),
  'prev' => 
  array (
    0 => 'userlandnaming.globalnamespace.php',
    1 => '全局命名空间',
  ),
  'next' => 
  array (
    0 => 'userlandnaming.tips.php',
    1 => '提示',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'zh',
    '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">规则</h2>
  <p class="para">
   以下列表指出了 PHP 工程在选择新的内部标识符时保留给自己的权利。最终指南是官方的<a href="https://github.com/php/php-src/raw/master/CODING_STANDARDS.md" class="link external">&raquo;&nbsp;编码标准</a>：
  </p>

  <ul class="itemizedlist">
   <li class="listitem">
    <p class="para">
     PHP 拥有最顶层命名空间，但是会尝试找到合体的描述命名以避免任何明显的冲突。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     函数名在两个词中间使用下划线，类名则同时使用 <code class="literal">camelCase</code>
     和 <code class="literal">PascalCase</code> 规则。
    </p>
   </li>
   <li class="listitem">
    <p class="para">
     PHP 在任何扩展库的全局符号前附加上扩展库的名称（此规则在过去则有无数例外）。例如：
    </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>（以前的一个失误例子）
      </p>
     </li>
     <li class="listitem"><p class="para">new SplFileObject()</p></li>
    </ul>
   </li>
   <li class="listitem">
    <p class="para">
     Iterators 和 Exceptions 则只是简单加上
     &quot;<code class="literal">Iterator</code>&quot; 和 &quot;<code class="literal">Exception</code>&quot;
     后缀。例如：
    </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 保留所有以 <code class="literal">__</code>
     开头的符号作为魔术符号。建议用户不要在 PHP
     中创建以 <code class="literal">__</code> 打头的符号，除非是要使用有文档记载的魔术函数功能。例如：
    </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); ?>