带变量的Php文件定义

时间:2015-01-20 21:08:30

标签: php fopen fedex

我正在修改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。如何正确地使这些定义动态化?

2 个答案:

答案 0 :(得分:3)

您可以使用constant

$fp = fopen(constant('SHIP_CHILDLABEL_'.$i), 'wb');

Docs here

答案 1 :(得分:1)

尝试使用“常量”指令来处理动态常量名称(定义)。

例如:

$i = 1;
define("CONSTANT_".$i, 123);
echo constant("CONSTANT".$i);

这样就可以了。

此致