Я изменяю файлы API FedEx, чтобы они соответствовали моему сайту, и я изо всех сил стараюсь сделать определения динамическими, основываясь на общем количестве пакетов.
$totalPackages = 4;
for($i=1; $i<=($totalPackages-1); $i++) {
define('SHIP_CHILDLABEL_'.$i, 'shipchildlabel_'.$i.'pdf');
}
Позже в файле …
for($i=1; $i<=($totalPackages-1); $i++) {
$fp = fopen(SHIP_CHILDLABEL_.$i, 'wb');
fwrite($fp, ($childResponse->CompletedShipmentDetail->CompletedPackageDetails->Label->Parts->Image));
fclose($fp);
echo '<a href="./'.SHIP_CHILDLABEL_.$i.'.pdf">'.SHIP_CHILDLABEL_.$i.'</a> was generated';
}
Конечно, это заставляет fopen ссылаться на SHIP_CHILDLABEL_1.pdf, SHIP_CHILDLABEL_2.pdf и SHIP_CHILDLABEL_3.pdf вместо shipchildlabel_1.pdf, shipchildlabel_2.pdf и shipchildlabel_3.pdf. Как я могу правильно сделать эти определения динамическими?
Ты можешь использовать constant
:
$fp = fopen(constant('SHIP_CHILDLABEL_'.$i), 'wb');
Попробуйте использовать директиву константы для обработки динамических имен констант (определяет).
Например:
$i = 1;
define("CONSTANT_".$i, 123);
echo constant("CONSTANT".$i);
Это сделает свое дело.
С уважением