Sobes.tech
Middle+

როგორ ხორციელდება გენერატორში ის, რომ მიმდინარე ფაილში მხოლოდ ერთი ობიექტია?

sobes.tech AI

პასუხი AI-სგან

PHP-யில் ஜெனரேட்டர் (Generator) என்பது ஒரு இடைமுகமாக செயல்படுகிறது, இது ஒரு செயலின் நிறுத்தலை மற்றும் பின்னர் தொடர்வதற்கான அனுமதியை வழங்குகிறது. இது foreach சுழற்சியில் பயன்படுத்தப்படும்போது, அது எந்த நேரத்திலும் ஒரு Generator பொருளுடன் மட்டுமே பணியாற்றுகிறது. ஒவ்வொரு yield அழைப்பிலும், செயலி அதன் நிலையை (உள்ளூர் மாறிகள், நிறைவு இடம்) "நினைவில்" வைத்துக் கொண்டு, மதிப்பை மீட்டெடுத்து, ஒரு இடைமுகத்தின் உருப்படியை உருவாக்குகிறது. அடுத்த foreach சுழற்சியில், செயலி அது நிறுத்திய இடத்திலிருந்து தொடர்கிறது. உண்மையில், Generator பொருள் ஒரு நிலைமையுள்ள பொருளாகும், இது இடைமுகத்தின் நிலையை கட்டுப்படுத்துகிறது.

<?php

function myGenerator() {
    yield 1; // செயலி நிறுத்தப்படுகிறது, 1-ஐ மீட்டெடுக்கிறது
    echo "1-க்கு பிறகு தொடர்ச்சி\n";
    yield 2; // செயலி நிறுத்தப்படுகிறது, 2-ஐ மீட்டெடுக்கிறது
    echo "2-க்கு பிறகு தொடர்ச்சி\n";
    yield 3; // செயலி நிறுத்தப்படுகிறது, 3-ஐ மீட்டெடுக்கிறது
}

$generator = myGenerator(); // ஒரு `Generator` பொருள் உருவாக்கப்படுகிறது

foreach ($generator as $value) {
    echo "பெற்ற மதிப்பு: " . $value . "\n";
}

// ஒவ்வொரு நேரத்திலும், $generator மாறி ஒரு `Generator` வகை பொருளை கொண்டுள்ளது.
// இது உருவாக்கப்பட்ட மதிப்புகள் மீது இடைமுக செயல்முறையை கட்டுப்படுத்துகிறது.

?>

எனவே, ஒரு Generator பொருள் நிலை மற்றும் படி படியாக தரவு பெறும் தத்துவத்தை encapsulate செய்கிறது, இது பெரிய தரவு தொகுப்புகளை முழுமையாக நினைவகத்தில் ஏற்றாமல் செயலாக்க அனுமதிக்கிறது.