2013-12-24 7 views
2

У меня есть переменная $uid , которая всегда содержит число. Я хочу выполнить различные действия в зависимости от того, как заканчивается $uid. Например:Убедитесь, что переменная заканчивается

if(&uid ENDS WITH 2,3 or 4) {echo "Some content"}; 
else if($uid ENDS WITH 1,5 or 6) {echo "Some other content"}; 
else if($uid ENDS WITH 7,8,9 or 0) {echo "Some other content"}; 

Ничего приходит на мой взгляд, как достичь этого. Заранее благодарим за ваше время!

+1

Это действительно плохая часть конструкции, я думал, поток коды на основе фактического имени переменного вымер в 70-й лет - почему бы не просто использовать массив и испытание на key –

+0

Я согласен, им не очень хорошо на php. – VDonchev

+1

Это поможет вам. http://stackoverflow.com/questions/2681786/how-to-get-the-last-char-of-a-string-in-php –

ответ

1

Попробуйте это:

$endsWith = substr($uid, -1); 
    if (in_array($endsWith, array(2, 3, 4)) echo "something"; 
    elseif() // ... etc 
+0

Я пробовал: ' ' и выводит ошибку: ' синтаксическая ошибка, неожиданная T_ECHO в /var/www/dn/index.php на линии 4' любые предложения? – VDonchev

+0

один отсутствует ')' – VDonchev

3
$end = substr($uid, -1); 
if($end == 2 || $end == 3 || $end == 4){ 
echo "Some content"; 
} 
else if($end == 1 || $end == 5 || $end == 6){ 
echo "Some other content"; 
} 
else if($end == 7 || $end == 8 || $end == 9 || $end == 0){ 
echo "Some other content"; 
} 

Update: Если вы знаете, что $uid представляет собой целое число, вы можете изменить первую строку на:
$end = $uid % 10;

2

Есть несколько способов, чтобы качели этой кошки. Использование большого количества if/elseif, как у вас, но это становится трудно читать. Вы можете использовать in_array(), что является хорошим решением, но снова у вас есть несколько if/elseifs.

Я предпочитаю использовать переключатель.

$end=substr($uid, -1); 

switch ($end){ 
    case 2: 
    case 3: 
    case 4: 
     echo "Some content"; 
     break; 
    case 1: 
    case 5: 
    case 6: 
     echo "Some other content"; 
     break; 
    case 7: 
    case 8: 
    case 9: 
    case 0: 
     echo "Some other other content"; 
     break; 
} 
Смежные вопросы