hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 文章 - 后端开发 - 正文 君子好学,自强不息!

php yield是什么意思?_后端开发

2020-07-03后端开发ki4网4°c
A+ A-

c语言中逻辑运算符优先级是什么?_后端开发

c语言中逻辑运算符优先级由高到低依次是:!(逻辑非)、&&(逻辑与)、||(逻辑或)。逻辑表达式的值为逻辑值;逻辑值分为逻辑真值和逻辑假值,在判断时,仅有零值被判断为逻辑假值(false),一切非零值均可被判断为逻辑真值(true)。

php yield的意思是该yield关键字从发电机函数返回数据,yield语句看起来很像return语句,yield不是停止函数的执行并返回,而是为循环生成器的代码提供一个值,并暂停生成器函数的执行。

php yield的意思是:

1、什么yield?

该yield关键字从发电机函数返回数据:

生成器函数的核心是yield关键字。以最简单的形式,yield语句看起来很像return语句,yield不是停止函数的执行并返回,而是为循环生成器的代码提供一个值,并暂停生成器函数的执行。

2、什么是生成器函数?

生成器函数实际上是编写迭代器的一种更紧凑,更有效的方法。它允许您定义一个函数(您的xrange),该函数将

在 您遍历该函数时_计算并返回_ 值:

foreach (xrange(1, 10) as $key => $value) {
    echo "$key => $value", PHP_EOL;
}

这将创建以下输出:

0 => 1
1 => 2
…
9 => 10

您也可以控制$keyforeach使用

yield $someKey => $someValue;

在generator函数中,$someKey是您想要显示的内容$key$someValue是中的值$val。在问题的示例中为$i

3、与正常功能有何不同?

现在您可能想知道为什么我们不仅仅使用PHP的本机range函数来实现该输出。是的,你是。输出将是相同的。区别在于我们到达那里的方式。

PHP ZVAL是什么意思?_后端开发

PHP ZVAL是PHP中最重要的数据结构之一,包含了PHP中的变量值和类型的相关信息,它是struct结构,基本结构为【struct _zval_struct(zvalue_value value zend_uchar type)】。

当我们使用rangePHP,将执行它,在内存中创建一个数字的整个阵列,并return认为 整个阵列

的foreach循环,然后将去在它和输出的值。换句话说,foreachwill将对数组本身进行操作。该range功能和foreach唯一的“交谈”一次。可以将其想像为通过邮件获取包裹。送货员会把包裹交给您,然后离开。然后解开整个包装,取出里面的任何东西。

当我们使用生成器函数时,PHP将逐步进入该函数并执行,直到遇到结尾或yield关键字为止。当遇到a时yield,它将把当时的值返回外循环。然后,它返回到生成器函数,并从产生的地方继续。由于您xrange拥有一个for循环,它将执行并屈服直到$max达到。想像它foreach和发生器打乒乓球。

4、我为什么需要那个?

显然,生成器可用于解决内存限制。根据您的环境,执行range(1, 1000000)遗嘱会使您的脚本致命,而对生成器执行同样的操作会很好。或如Wikipedia所述:

由于生成器仅根据需要计算其屈服值,因此它们对于表示昂贵或无法立即计算的序列很有用。这些包括例如无限序列和实时数据流。

发电机也应该很快。但是请记住,当我们谈论快速时,我们通常会以很小的数目交谈。因此,在您开始运行并更改所有代码以使用生成器之前,请进行基准测试以了解在何处有意义。

生成器的另一个用例是异步协程。该yield关键字不仅返回值,但它也接受他们。有关此内容的详细信息,请参见下面链接的两个出色的博客文章。

5、从什么时候起可以使用yield?

生成器已在 PHP 5.5中

引入。尝试使用yield该版本之前的版本会导致各种解析错误,具体取决于关键字后面的代码。因此,如果您从该代码中遇到了解析错误,请更新您的PHP。

相关学习推荐:PHP编程从入门到精通

以上就是php yield是什么意思?的详细内容,更多请关注ki4网其它相关文章!

php echo、print、print_r、var_dum的区别有哪些_后端开发

php echo、print、print_r、var_dum的区别有:1、echo和print是语言结构,而print_r和var_dump是普通函数;2、echo用于输出一个或多个字符串;3、print用于输出字符串等等。

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  选择分享方式
  移步手机端
php yield是什么意思?_后端开发

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
标签:

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>