<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/class.evtimer.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'zh',
  ),
  'this' => 
  array (
    0 => 'evtimer.construct.php',
    1 => 'EvTimer::__construct',
    2 => 'Constructs an EvTimer watcher object',
  ),
  'up' => 
  array (
    0 => 'class.evtimer.php',
    1 => 'EvTimer',
  ),
  'prev' => 
  array (
    0 => 'evtimer.again.php',
    1 => 'EvTimer::again',
  ),
  'next' => 
  array (
    0 => 'evtimer.createstopped.php',
    1 => 'EvTimer::createStopped',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'en',
    'path' => 'reference/ev/evtimer/construct.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="evtimer.construct" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">EvTimer::__construct</h1>
  <p class="verinfo">(PECL ev &gt;= 0.2.0)</p><p class="refpurpose"><span class="refname">EvTimer::__construct</span> &mdash; <span class="dc-title">Constructs an EvTimer watcher object</span></p>

 </div>
 <div class="refsect1 description" id="refsect1-evtimer.construct-description">
  <h3 class="title">说明</h3>
  <div class="constructorsynopsis dc-description">
   <span class="modifier">public</span>
   <span class="methodname"><strong>EvTimer::__construct</strong></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.float.php" class="type float">float</a></span> <code class="parameter">$after</code>
   </span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.float.php" class="type float">float</a></span> <code class="parameter">$repeat</code>
   </span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.callable.php" class="type callable">callable</a></span> <code class="parameter">$callback</code>
   </span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span> <code class="parameter">$data</code>
    <span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span>
   </span>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<span class="methodparam">
    
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> <code class="parameter">$priority</code>
    <span class="initializer"> = 0</span>
   </span><br>)</div>

  <p class="simpara">
   Constructs an EvTimer watcher object.
  </p>
 </div>

 <div class="refsect1 parameters" id="refsect1-evtimer.construct-parameters">
  <h3 class="title">参数</h3>
  <dl>
   
    <dt>
     <code class="parameter">after</code>
    </dt>
    <dd>
     <span class="simpara">
      Configures the timer to trigger after
      <code class="parameter">after</code>
      seconds.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">repeat</code>
    </dt>
    <dd>
     <span class="simpara">
      If repeat is
      <code class="literal">0.0</code>,
      then it will automatically be stopped once the timeout is reached. If
      it is positive, then the timer will automatically be configured to
      trigger again every repeat seconds later, until stopped manually.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">callback</code>
    </dt>
    <dd>
     <span class="simpara">
      See
      <a href="ev.watcher-callbacks.php" class="link">Watcher callbacks</a>.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">data</code>
    </dt>
    <dd>
     <span class="simpara">
      Custom data associated with the watcher.
     </span>
    </dd>
   
   
    <dt>
     <code class="parameter">priority</code>
    </dt>
    <dd>
     <span class="simpara">
      <a href="class.ev.php#ev.constants.watcher-pri" class="link">Watcher priority</a>
     </span>
    </dd>
   
  </dl>
 </div>


 <div class="refsect1 examples" id="refsect1-evtimer.construct-examples">
  <h3 class="title">示例</h3>
 <div class="example" id="example-1">
   <p><strong>示例 #1 Simple timers</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: #FF8000">// Create and start timer firing after 2 seconds<br /></span><span style="color: #0000BB">$w1 </span><span style="color: #007700">= new </span><span style="color: #0000BB">EvTimer</span><span style="color: #007700">(</span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, function () {<br />    echo </span><span style="color: #DD0000">"2 seconds elapsed\n"</span><span style="color: #007700">;<br />});<br /><br /></span><span style="color: #FF8000">// Create and launch timer firing after 2 seconds repeating each second<br />// until we manually stop it<br /></span><span style="color: #0000BB">$w2 </span><span style="color: #007700">= new </span><span style="color: #0000BB">EvTimer</span><span style="color: #007700">(</span><span style="color: #0000BB">2</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">, function (</span><span style="color: #0000BB">$w</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"is called every second, is launched after 2 seconds\n"</span><span style="color: #007700">;<br />    echo </span><span style="color: #DD0000">"iteration = "</span><span style="color: #007700">, </span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">iteration</span><span style="color: #007700">(), </span><span style="color: #0000BB">PHP_EOL</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// Stop the watcher after 5 iterations<br />    </span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">iteration</span><span style="color: #007700">() == </span><span style="color: #0000BB">5 </span><span style="color: #007700">and </span><span style="color: #0000BB">$w</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">stop</span><span style="color: #007700">();<br />    </span><span style="color: #FF8000">// Stop the watcher if further calls cause more than 10 iterations<br />    </span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">iteration</span><span style="color: #007700">() &gt;= </span><span style="color: #0000BB">10 </span><span style="color: #007700">and </span><span style="color: #0000BB">$w</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">stop</span><span style="color: #007700">();<br />});<br /><br /></span><span style="color: #FF8000">// Create stopped timer. It will be inactive until we start it ourselves<br /></span><span style="color: #0000BB">$w_stopped </span><span style="color: #007700">= </span><span style="color: #0000BB">EvTimer</span><span style="color: #007700">::</span><span style="color: #0000BB">createStopped</span><span style="color: #007700">(</span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">5</span><span style="color: #007700">, function(</span><span style="color: #0000BB">$w</span><span style="color: #007700">) {<br />    echo </span><span style="color: #DD0000">"Callback of a timer created as stopped\n"</span><span style="color: #007700">;<br /><br />    </span><span style="color: #FF8000">// Stop the watcher after 2 iterations<br />    </span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">iteration</span><span style="color: #007700">() &gt;= </span><span style="color: #0000BB">2 </span><span style="color: #007700">and </span><span style="color: #0000BB">$w</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">stop</span><span style="color: #007700">();<br />});<br /><br /></span><span style="color: #FF8000">// Loop until Ev::stop() is called or all of watchers stop<br /></span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">run</span><span style="color: #007700">();<br /><br /></span><span style="color: #FF8000">// Start and look if it works<br /></span><span style="color: #0000BB">$w_stopped</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">start</span><span style="color: #007700">();<br />echo </span><span style="color: #DD0000">"Run single iteration\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">run</span><span style="color: #007700">(</span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">RUN_ONCE</span><span style="color: #007700">);<br /><br />echo </span><span style="color: #DD0000">"Restart the second watcher and try to handle the same events, but don't block\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">$w2</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">again</span><span style="color: #007700">();<br /></span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">run</span><span style="color: #007700">(</span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">RUN_NOWAIT</span><span style="color: #007700">);<br /><br /></span><span style="color: #0000BB">$w </span><span style="color: #007700">= new </span><span style="color: #0000BB">EvTimer</span><span style="color: #007700">(</span><span style="color: #0000BB">10</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">, function() {});<br />echo </span><span style="color: #DD0000">"Running a blocking loop\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">Ev</span><span style="color: #007700">::</span><span style="color: #0000BB">run</span><span style="color: #007700">();<br />echo </span><span style="color: #DD0000">"END\n"</span><span style="color: #007700">;<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
   </div>

  <div class="example-contents"><p>以上示例的输出类似于：</p></div>
  <div class="example-contents screen">
<div class="examplescode"><pre class="examplescode">2 seconds elapsed
is called every second, is launched after 2 seconds
iteration = 1
is called every second, is launched after 2 seconds
iteration = 2
is called every second, is launched after 2 seconds
iteration = 3
is called every second, is launched after 2 seconds
iteration = 4
is called every second, is launched after 2 seconds
iteration = 5
Run single iteration
Callback of a timer created as stopped
Restart the second watcher and try to handle the same events, but don&#039;t block
Running a blocking loop
is called every second, is launched after 2 seconds
iteration = 8
is called every second, is launched after 2 seconds
iteration = 9
is called every second, is launched after 2 seconds
iteration = 10
END</pre>
</div>
  </div>
  </div>
 </div>

 <div class="refsect1 seealso" id="refsect1-evtimer.construct-seealso">
  <h3 class="title">参见</h3>
  <ul class="simplelist">
   <li>
    <span class="methodname"><a href="evtimer.createstopped.php" class="methodname" rel="rdfs-seeAlso">EvTimer::createStopped()</a> - Creates EvTimer stopped watcher object</span>
   </li>
   <li>
    <span class="classname"><a href="class.evperiodic.php" class="classname">EvPeriodic</a></span>
   </li>
   <li>
    <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#code_ev_timer_code_relative_and_opti" class="link external">&raquo;&nbsp;ev_timer - relative and optionally repeating timeouts</a>
   </li>
   <li>
    <a href="http://pod.tst.eu/http://cvs.schmorp.de/libev/ev.pod#Be_smart_about_timeouts" class="link external">&raquo;&nbsp;Be smart about timeouts</a>
   </li>
  </ul>
 </div>

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