コード例 #1
0
<?php

function gen1()
{
    return 42;
    (yield 24);
}
$gen = gen1();
// Calling getReturn() directly here is okay due to auto-priming
var_dump($gen->getReturn());
function gen2()
{
    (yield 24);
    return 42;
}
$gen = gen2();
var_dump($gen->current());
$gen->next();
var_dump($gen->getReturn());
// & for generators specifies by-reference yield, not return
// so it's okay to return a literal
function &gen3()
{
    $var = 24;
    (yield $var);
    return 42;
}
$gen = gen3();
var_dump($gen->current());
$gen->next();
var_dump($gen->getReturn());
コード例 #2
0
ファイル: yield_from_iterator.php プロジェクト: badlamer/hhvm
<?php

function gen1()
{
    return [4, 5, 6];
}
function gen2()
{
    yield from gen1();
}
$g = gen2();
foreach ($g as $val) {
    var_dump($val);
}
コード例 #3
0
ファイル: Yield.php プロジェクト: flydement/MyTest
function gen()
{
    (yield 1);
    (yield 2);
    yield from gen2();
}
<?php

function gen()
{
    yield;
    return;
}
function gen2()
{
    yield;
    return null;
}
function gen3()
{
    return;
    yield;
}
function gen4()
{
    return;
    yield;
}
var_dump(gen());
var_dump(gen2());
var_dump(gen3());
var_dump(gen4());
コード例 #5
0
<?php

define("ALWAYSWRITE", FALSE);
//always write eveng with the message "please check back shortly"
define("OUTPUTFILEPATH", "./data.html");
//the absolute path of the file to be written
$IdLeague = "926";
$data = array();
$title = "";
$ret = gen($IdLeague, $data, $title);
//echo $title;
//print_r($data);
gen2($data, $title);
function gen($IdLeague, &$data, &$mainTitle)
{
    $ret = false;
    $mainTitle = "";
    $data = array();
    $xml_string = file_get_contents("./odds.xml");
    $matches = array();
    preg_match('/<league IdLeague="' . $IdLeague . '"[^>]*>(.*?)<\\/league>/', $xml_string, $matches);
    if (count($matches) <= 0) {
        return $ret;
    }
    $league = $matches[1];
    $leagueObj = simplexml_load_string($matches[0]);
    $mainTitle = (string) $leagueObj["Description"];
    $sections = preg_split("/<banner[^>]*>/", $league);
    // split by sections
    if (count($sections) <= 0) {
        return $ret;
コード例 #6
0
<?php

function gen1()
{
    (yield 'a');
    (yield 'aa');
}
function gen2()
{
    (yield 'b');
    (yield 'bb');
}
$it = new MultipleIterator();
$it->attachIterator(gen1());
$it->attachIterator(gen2());
foreach ($it as $values) {
    var_dump($values);
}
コード例 #7
0
ファイル: auto_priming.php プロジェクト: badlamer/hhvm
<?php

function gen1()
{
    (yield 1 => 2);
    (yield 2 => 3);
}
var_dump(gen1()->valid());
var_dump(gen1()->current());
var_dump(gen1()->key());
var_dump(gen1()->next());
function gen2()
{
    if (false) {
        (yield 1 => 2);
    }
}
var_dump(gen2()->valid());
var_dump(gen2()->current());
var_dump(gen2()->key());
try {
    var_dump(gen2()->next());
} catch (Exception $e) {
    var_dump($e->getMessage());
}
コード例 #8
0
function gen()
{
    (yield 1);
    (yield 2);
    return yield from gen2();
}
コード例 #9
0
ファイル: generator_cond_func.php プロジェクト: badlamer/hhvm
<?php

if (false) {
    function gen1()
    {
        (yield 1);
    }
}
if (true) {
    function gen1()
    {
        (yield 2);
    }
    function gen2()
    {
        (yield 3);
    }
}
if (false) {
    function gen2()
    {
        (yield 4);
    }
}
foreach (gen1() as $x) {
    var_dump($x);
}
foreach (gen2() as $x) {
    var_dump($x);
}