Простой вопрос и вопрос ... Я схожу с ума - PullRequest
1 голос
/ 17 мая 2011

Ладно, посмотрите на этот код:

$accountMask = substr($transaction['cc_number'], strlen($transaction['cc_number'])-4); 

Я думаю, что требуется число, подобное этому: 1234567890 И превращает это в это: 123456

Я сумасшедший, когда думаю, что код на самом деле делает это: 7890 ??

По моему мнению, если бы я хотел показать только последние 4 цифры номера, такие как номер CC, я бы сделал это:

$accountMask = substr($transaction['cc_number'], -4); 

правый

Ответы [ 4 ]

2 голосов
/ 17 мая 2011

Оба ваших примера делают одно и то же.В соответствии с комментариями ознакомьтесь с документацией по substr ()

В частности, по второму параметру:

Если start неотрицательный, возвращаемая строка будетна начальной позиции в строке, считая с нуля.Например, в строке «abcdef» символ в позиции 0 - «a», символ в позиции 2 - «c» и т. Д.

Если start отрицательный, возвращаемая строка будет начинатьсяв начале первого символа от конца строки.

Если длина строки меньше или равна длине начальных символов, будет возвращено значение FALSE.

0 голосов
/ 17 мая 2011

Подпись для функции substr:

string substr ( string $string , int $start [, int $length ] )

за здесь .

Итак, вы переходите в строку и начинаете позицию,Это займет все после этого.Если вы хотите, чтобы он делал то, что, как вы сказали, выглядит так, вы бы хотели назвать это так:

$accountMask = substr($transaction['cc_number'], 0, strlen($transaction['cc_number'])-4); 
0 голосов
/ 17 мая 2011

Определение substr():

string substr ( string $string , int $start [, int $length ] )

Ваш код устанавливает $accountMask на последние 4 цифры $transaction['cc_number']

0 голосов
/ 17 мая 2011

строка substr (строка $ string, int $ start [, int $ length])

Возвращает часть строки указано начало и длина параметры.

Чтобы получить то, что вы хотите, укажите $ start = 0, т.е. используйте:

$accountMask = substr($transaction['cc_number'], 0, -4);

Или:

$accountMask = substr($transaction['cc_number'], 0, strlen($transaction['cc_number'])-4);

Вы можете узнать больше о substr() здесь: http://php.net/manual/en/function.substr.php

...