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
您也可以控制$key
在foreach
使用
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用于输出字符串等等。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)