Nazwa pliku, nazwa zmiennej tworzona na podstawie elementu tablicy

0

Witam.
Mając powtarzalny kod różniący się tylko nazwą zmiennych:

// AAA
		$file_AAA = dirname(__FILE__) . '/pobrane/ALFABET-AAA.txt';
		$file2_AAA = dirname(__FILE__) . '/pobrane/ALFABET-AAA.txt';
		
		if (...)
		{
			foreach(...) 
			{
				switch(...)
				{
					case "ALFABET-AAA": $_SESSION["ALFABET-AAA-P"] = $cc;
									$_SESSION["ALFABET-AAA-N"] = $dd; break;
					
				}
			}
		}
		
		
			if (($_SESSION["ALFABET-AAA-P"] != $_SESSION["ALFABET-AAA-N"]))
			{
					$data = $_SESSION["ALFABET-AAA-P"];
					file_put_contents($file_AAA,$data, FILE_APPEND);  
			}
			
		// BBB
		$file_BBB = dirname(__FILE__) . '/pobrane/ALFABET-BBB.txt';
		$file2_BBB = dirname(__FILE__) . '/pobrane/ALFABET-BBB.txt';
		
		if (...)
		{
			foreach(...) 
			{
				switch(...)
				{
					case "ALFABET-BBB": $_SESSION["ALFABET-BBB-P"] = $cc;
									$_SESSION["ALFABET-BBB-N"] = $dd; break;
					
				}
			}
		}
		
		
			if (($_SESSION["ALFABET-BBB-P"] != $_SESSION["ALFABET-BBB-N"]))
			{
					$data = $_SESSION["ALFABET-BBB-P"];
					file_put_contents($file_BBB,$data, FILE_APPEND);  
			}

zamiast powtarzać tez sam kod x razy chcę to zrobić za pomocą tablicy

$tab =[	'AAA',
		'BBB',
		'CCC',
		'DDD'
	];

i w pętli wykonać

for($x = 0; $x < count($tab); $x++)
		{
				$file_."$tab[$x]". = dirname(__FILE__) . '/pobrane/ALFABET-."$tab[$x]"..txt';
				$file2_."$tab[$x]". = dirname(__FILE__) . '/pobrane/ALFABET-."$tab[$x]"..txt';
				
				if (...)
				{
					foreach(...) 
					{
						switch(...)
						{
							case "ALFABET-."$tab[$x]".": $_SESSION["ALFABET-."$tab[$x]".-P"] = $cc;
											$_SESSION["ALFABET-."$tab[$x]".-N"] = $dd; break;
							
						}
					}
				}
				
				
					if (($_SESSION["ALFABET-."$tab[$x]".-P"] != $_SESSION["ALFABET-."$tab[$x]".-N"]))
					{
							$data = $_SESSION["ALFABET-."$tab[$x]".-P"];
							file_put_contents($file_."$tab[$x]".,$data, FILE_APPEND);  
					}
		}

tylko czy da się jakoś dodawać do nazwy zmiennej nawę z elementu tablicy?

2

Obczaj to:

$nazwa = "zupa";
$$nazwa = "szczawiowa";
echo($zupa);
1
${'file_' . $tab[$x]} = 'co tylko chcesz';

a potem możesz się odwołać do $file_AAA czy co tam sobie chcesz ;)
aczkolwiek nie wiem po co chcesz tak kombinować zamiast upchnąć wszystko np do tablicy.

2
//powtarzalny kod wyodrebniasz do funkcji, jest potem łatwiej czytelniej itd.
function doSthWithFile($fileNamePart)
{
    // W funcji na podstawie tej części nazwy sobie robisz co tam chcesz
    if (($_SESSION["ALFABET-" . $fileNamePart . "-P"] != $_SESSION["ALFABET-" . $fileNamePart . "-N"])) {
        $data = $_SESSION["ALFABET-" . $fileNamePart . "-P"];
        file_put_contents($fileNamePart, $data, FILE_APPEND);
    }
}

//Tworzysz sobie tablicę z potrzebnymi nazwami plików, czy ścieżkami do nich
$files = [
    "AAA",
    "BBB",
    "CCC",
    //...czy ile tam potrzebujesz
];
//Potem iterujesz sobie po elementach tablicy wywołując funkcję
foreach ($files as $fileNamePart) {
    doSthWithFile($fileNamePart);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1