За последние 24 часа нас посетили 60735 программистов и 1746 роботов. Сейчас ищут 1189 программистов ...

Сложение и вычитание при условии не срабатывает

Тема в разделе "PHP для новичков", создана пользователем viphost, 16 дек 2012.

  1. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    Подскажите в чем проблема
    Код (Text):
    1. $Rate = '-1' ;
    2. $RateDwn = $Rate > 0 ? '+' : '-'  ;
    3.     $user->user_skill = $userSkill . $RateDwn . $user_skill / 2;
    4.     $user->user_rating = $userRating . $RateDwn . $user_rating / 2;
    Не пашет, определяет как строку?
    Такой вариант робит
    Код (Text):
    1. if($Rate > 0) {
    2.                         $user->user_skill = $userSkill + $user_skill / 2;
    3.                         $user->user_rating = $userRating + $user_rating / 2;
    4.                     } else {
    5.                         $user->user_skill = $userSkill - $user_skill / 2;
    6.                         $user->user_rating = $userRating - $user_rating / 2;
    7.                     }
    Но хочется покороче
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Код (PHP):
    1. $Rate = '-1';
    2. $RateDwn = $Rate > 0 ? '+' : '-';
    3. $user->user_skill = eval($userSkill . $RateDwn . $user_skill . '/ 2');
    4. $user->user_rating = eval($userRating . $RateDwn . $user_rating . '/ 2'); 
     
  3. viphost

    viphost Активный пользователь

    С нами с:
    23 мар 2009
    Сообщения:
    307
    Симпатии:
    0
    я eval вобще избегаю =)
     
  4. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Зачем ее избегать если у вас это в том, месте, где другой пользователь не сможет вставить скрипт...
    Опасность только в том, что нельзя делать eval() когда пользователь отправляет данные на сервер...

    А так, вообще не важно...
     
  5. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Кстати, я там неправильно написал. Если делать с eval(), то тогда так:
    Код (PHP):
    1. $user->user_skill = eval('return(' . $userSkill . $RateDwn . $user_skill . '/ 2)');