简体   繁体   中英

Parse error: syntax error, unexpected '[', expecting ')' php

I am creating a custom shipping method for opencart, however i am stuck on the catalog model file, which is for PHP 5.4+ , but how do i make it working with PHP 5.3 as Opencart Requirement is start from PHP 5.3


    $languages = $this->language->get('code');
    $quote_data = array();
    $quote_data['items'] = array(
        'code'         => 'items.items',
        'title'        => $this->config->get('items_shipping_description')[$languages],
        'cost'         => $this->config->get('items_cost'),
        'tax_class_id' => $this->config->get('items_tax_class_id'),
        'text'         => $this->currency->format($this->tax->calculate($items_cost, $this->config->get('items_tax_class_id'), $this->config->get('config_tax')))
    );

this line working fine with PHP 5.4+ but not PHP 5.3

'title'=> $this->config->get('items_shipping_description')[$languages],

I get an error for PHP 5.3 which is

Parse error: syntax error, unexpected '[', expecting ')' in ...

I've also read many duplicate question and tried many different way to make this working with no luck! please help, thank you!

Just assign it to variable: $description = $this->config->get('items_shipping_description') And then use:

$quote_data['items'] = array(
    'code'         => 'items.items',
    'title'        => $description[$languages]
    'cost'         => $this->config->get('items_cost'),
    'tax_class_id' => $this->config->get('items_tax_class_id'),
    'text'         => $this->currency->format($this->tax->calculate($items_cost, $this->config->get('items_tax_class_id'), $this->config->get('config_tax')))
);
$this->config->get('items_shipping_description')[$languages]

This is function array dereferencing and was only added in php 5.4

To make it work with php 5.3 you will need to assign that return value to a variable and then use that.

$items = $this->config->get('items_shipping_description');
$items[$languages];

Try this,

$desc = $this->config->get('items_shipping_description');

And

'title'        => $desc[$languages],

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM