2016-09-26 3 views
-2

Я пытаюсь создать if else строки на php из PrestaShop,PHP, если еще проблема обнаружена

Я пытаюсь сделать мой сайт, чтобы запустить код, если страница скидка, но запустить другой код, если это не ... но мечтатель говорит, что есть ошибки, что в этом плохого?

Спасибо

это код

if ($page_name == 'discount') 
{ 
public static $definition = array(
    'table' => 'address', 
    'primary' => 'id_address', 
    'fields' => array(
     'id_customer' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_supplier' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_warehouse' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_country' =>  array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => false), 
     'id_state' =>   array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'), 
     'alias' =>    array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32), 
     'company' =>   array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 
     'lastname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 
     'firstname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 
     'vat_number' =>   array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 
     'address1' =>   array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => false, 'size' => 128), 
     'address2' =>   array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128), 
     'postcode' =>   array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12), 
     'city' =>    array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => false, 'size' => 64), 
     'other' =>    array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300), 
     'phone' =>    array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 
     'phone_mobile' =>  array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 
     'dni' =>    array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), 
     'deleted' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 
     'date_add' =>   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 
     'date_upd' =>   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 
    ), 
); 
} 

else 
{ 
    public static $definition = array(
    'table' => 'address', 
    'primary' => 'id_address', 
    'fields' => array(
     'id_customer' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_manufacturer' => array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_supplier' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_warehouse' =>  array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId', 'copy_post' => false), 
     'id_country' =>  array('type' => self::TYPE_INT, 'validate' => 'isUnsignedId', 'required' => true), 
     'id_state' =>   array('type' => self::TYPE_INT, 'validate' => 'isNullOrUnsignedId'), 
     'alias' =>    array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'required' => true, 'size' => 32), 
     'company' =>   array('type' => self::TYPE_STRING, 'validate' => 'isGenericName', 'size' => 64), 
     'lastname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 
     'firstname' =>   array('type' => self::TYPE_STRING, 'validate' => 'isName', 'required' => true, 'size' => 32), 
     'vat_number' =>   array('type' => self::TYPE_STRING, 'validate' => 'isGenericName'), 
     'address1' =>   array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'required' => true, 'size' => 128), 
     'address2' =>   array('type' => self::TYPE_STRING, 'validate' => 'isAddress', 'size' => 128), 
     'postcode' =>   array('type' => self::TYPE_STRING, 'validate' => 'isPostCode', 'size' => 12), 
     'city' =>    array('type' => self::TYPE_STRING, 'validate' => 'isCityName', 'required' => true, 'size' => 64), 
     'other' =>    array('type' => self::TYPE_STRING, 'validate' => 'isMessage', 'size' => 300), 
     'phone' =>    array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 
     'phone_mobile' =>  array('type' => self::TYPE_STRING, 'validate' => 'isPhoneNumber', 'size' => 32), 
     'dni' =>    array('type' => self::TYPE_STRING, 'validate' => 'isDniLite', 'size' => 16), 
     'deleted' =>   array('type' => self::TYPE_BOOL, 'validate' => 'isBool', 'copy_post' => false), 
     'date_add' =>   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 
     'date_upd' =>   array('type' => self::TYPE_DATE, 'validate' => 'isDate', 'copy_post' => false), 
    ), 
); 
} 
+1

Вы не можете определить свойства класса, используя if else, не говоря уже о том, что вы не можете определить свойства класса с использованием динамических значений. Используйте [setter] (http://stackoverflow.com/questions/1568091/why-use-getters-and-setters) – Andrew

+0

Кроме того, при задании вопроса лучше всегда предоставлять сообщение об ошибке, если оно есть. – BVengerov

+0

Что вы можете сделать, так это: Сделайте свое свойство класса 'public static $ definition = [];'. В вашем конструкторе вы можете проверить свое состояние 'if' и заполнить значение для' $ definition' – masterFly

ответ

2

Вы не можете определить публичный статический член, как это. Вы объявляете его в классе, а затем инициализируете его в методе:

class X { 
    public static $definition; 
    function method() 
    { 
     if ($page_name == 'discount') { 
      $definition = array (
... 
      ); 
     } 

     else { 
      $definition = array (
          'table' => 'address', 
          'primary' => 'id_address', 
          'fields' => array (
+0

, поэтому я решаю имя класса, а затем, где есть три точки, которые я ставил своим кодом? – Marwane

+0

Три точки означают, что я удалил часть вашего кода, чтобы избежать длинного сообщения. Почему вы используете public static, если вы не в классе? –

+0

Я вообще ничего не знаю о php, но мне нужно сделать некоторые обязательные поля не обязательными только на этой странице со скидкой, поэтому я пытался использовать if на моем localhost ... так что код уже завершен или я должен что-то добавить? – Marwane