第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何確定生成器是否產(chǎn)生引用?

如何確定生成器是否產(chǎn)生引用?

PHP
動漫人物 2023-10-21 17:16:13
我正在編寫一個通用組件,它包裝了一個生成器并進(jìn)行常規(guī)操作:按鍵過濾改變價值ETC。為了盡可能接近地模擬包裝的生成器,如果生成器正在使用引用,我想使用引用。當(dāng)我嘗試使用方法迭代非引用生成器時foreach ($generator as $key => &$value),我收到以下錯誤:如果生成器聲明生成按引用,則只能按引用迭代生成器有沒有辦法查明手頭的生成器是否正在返回引用?我使用反射沒有成功:$reflectedGeneratorValueSupplier = new \ReflectionMethod($generator, 'current');$this->canReference = $reflectedGeneratorValueSupplier->returnsReference(); //always false此外,不使用foreach構(gòu)造的迭代生成器對于引用根本不起作用:while ($generator->valid()) {    $key = $generator->key();    $value =& $generator->current(); //error, only variables can be passed by reference        $generator->next();}
查看完整描述

1 回答

?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個贊

使用ReflectionGenerator然后使用getFunction似乎可行。


<?php


function &generate(&$arr)

{

? ? foreach ($arr as $key => &$value) {

? ? ? ? yield $key => $value;

? ? }

};


$input = range(0,100);

$generator = generate($input);


$r = new ReflectionGenerator ($generator);


var_dump($r->getFunction()->returnsReference()); // true


查看完整回答
反對 回復(fù) 2023-10-21
  • 1 回答
  • 0 關(guān)注
  • 117 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號