我正在修改FedEx的API文件以适应我的网站,并且我正在努力根据包裹总数使定义动态化。
$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');
文档在这里
尝试使用"constant"指令来处理动态常量名称(定义)。
例如:
$i = 1;
define("CONSTANT_".$i, 123);
echo constant("CONSTANT".$i);
这将解决问题。
问候