<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.ds-hashable.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'ds-hashable.hash.php',
    1 => 'Ds\\Hashable::hash',
    2 => 'Devuelve un valor escalar para usar como valor de hash',
  ),
  'up' => 
  array (
    0 => 'class.ds-hashable.php',
    1 => 'Ds\\Hashable',
  ),
  'prev' => 
  array (
    0 => 'ds-hashable.equals.php',
    1 => 'Ds\\Hashable::equals',
  ),
  'next' => 
  array (
    0 => 'class.ds-sequence.php',
    1 => 'Ds\\Sequence',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/ds/ds/hashable/hash.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="ds-hashable.hash" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">Ds\Hashable::hash</h1>
  <p class="verinfo">(PECL ds &gt;= 1.0.0)</p><p class="refpurpose"><span class="refname">Ds\Hashable::hash</span> &mdash; <span class="dc-title">Devuelve un valor escalar para usar como valor de hash</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-ds-hashable.hash-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="modifier">abstract</span> <span class="modifier">public</span> <span class="methodname"><strong>Ds\Hashable::hash</strong></span>(): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>

  <p class="para rdfs-comment">
    Devuelve un valor escalar para usar como valor de hash de los objetos.
  </p>
  <p class="para">
    Mientras que el valor de hash no defina la igualdad, todos los objetos que son iguales según <span class="function"><a href="ds-hashable.equals.php" class="function">Ds\Hashable::equals()</a></span>
    deben tener el mismo valor de hash. Los valores de hash de los objetos iguales no tienen que ser únicos, por ejemplo
    se podría simplemente devolver <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> para todos los objetos y nada se rompería - la única
    implicación sería que las tablas de hash se convertirían en listas enlazadas porque todos
    los objetos serían hasheados en el mismo cubo. Es por lo tanto muy importante
    que se elija un buen valor de hash, como un ID o una dirección de correo electrónico.
 </p>

  <p class="para">
    Este método permite usar objetos como claves en estructuras tales como
    <span class="classname"><a href="class.ds-map.php" class="classname">Ds\Map</a></span> y <span class="classname"><a href="class.ds-set.php" class="classname">Ds\Set</a></span>, o cualquier otra
    estructura de búsqueda que respete esta interfaz.
  </p>

  <div class="caution"><strong class="caution">Precaución</strong>
    <p class="para">
        No elija un valor que podría cambiar en el objeto, como una propiedad pública.
        Las búsquedas en las tablas de hash fallarían porque el hash ha cambiado.
    </p>
  </div>

  <div class="caution"><strong class="caution">Precaución</strong>
    <p class="para">
        Todos los objetos que son iguales deben tener el mismo valor de hash.
    </p>
  </div>

 </div>


 <div class="refsect1 parameters" id="refsect1-ds-hashable.hash-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">Esta función no contiene ningún parámetro.</p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-ds-hashable.hash-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
    Un valor escalar para usar como valor de hash de este objeto.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-ds-hashable.hash-examples">
  <h3 class="title">Ejemplos</h3>
  <div class="example" id="example-1">
   <p><strong>Ejemplo #1 Ejemplo de <span class="function"><strong>Ds\Hashable::hash()</strong></span></strong></p>
   <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">class </span><span style="color: #0000BB">HashableObject </span><span style="color: #007700">implements </span><span style="color: #0000BB">\Ds\Hashable<br /></span><span style="color: #007700">{<br />    private </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />    private </span><span style="color: #0000BB">$email</span><span style="color: #007700">;<br /><br />    public function </span><span style="color: #0000BB">__construct</span><span style="color: #007700">(</span><span style="color: #0000BB">$name</span><span style="color: #007700">, </span><span style="color: #0000BB">$email</span><span style="color: #007700">)<br />    {<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name  </span><span style="color: #007700">= </span><span style="color: #0000BB">$name</span><span style="color: #007700">;<br />        </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email </span><span style="color: #007700">= </span><span style="color: #0000BB">$email</span><span style="color: #007700">;<br />    }<br /><br />    </span><span style="color: #FF8000">/**<br />     * Debe devolver el mismo valor para todos los objetos iguales, pero no tiene que<br />     * ser único. Este valor no será utilizado para determinar la igualdad.<br />     */<br />    </span><span style="color: #007700">public function </span><span style="color: #0000BB">hash</span><span style="color: #007700">()<br />    {<br />        return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email</span><span style="color: #007700">;<br />    }<br /><br />    </span><span style="color: #FF8000">/**<br />     * Determina la igualdad, generalmente durante una búsqueda en una tabla de hash para determinar<br />     * si la clave del cubo coincide con la clave de búsqueda. El hash debe ser igual si<br />     * los objetos son iguales, de lo contrario esta determinación no se alcanzaría.<br />     */<br />    </span><span style="color: #007700">public function </span><span style="color: #0000BB">equals</span><span style="color: #007700">(</span><span style="color: #0000BB">$obj</span><span style="color: #007700">): </span><span style="color: #0000BB">bool<br />    </span><span style="color: #007700">{<br />        return </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name  </span><span style="color: #007700">=== </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">name<br />            </span><span style="color: #007700">&amp;&amp; </span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email </span><span style="color: #007700">=== </span><span style="color: #0000BB">$obj</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">email</span><span style="color: #007700">;<br />    }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  </div>
 </div>


</div><?php manual_footer($setup); ?>