1

好的,所以看看这段代码:

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

我认为它需要这样的数字: 1234567890 并将其变成:123456

我是否疯狂地认为代码实际上是这样做的:7890 ??

在我看来,如果我只想显示像 CC 号码这样的数字的最后 4 位,我会这样做:

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

对?

4

4 回答 4

2

你的两个例子都做同样的事情。根据评论查看关于substr()的文档

特别是第二个参数:

如果 start 为非负数,则返回的字符串将从字符串的第 start 位置开始,从零开始计数。例如,在字符串 'abcdef' 中,位置 0 的字符是 'a',位置 2 的字符是 'c',等等。

如果 start 为负数,则返回的字符串将从字符串末尾的第 start 个字符开始。

如果字符串长度小于或等于起始字符,则返回 FALSE。

于 2011-05-17T18:07:55.860 回答
0

字符串 substr ( 字符串 $string , int $start [, int $length ] )

返回由 start 和 length 参数指定的字符串部分。

要得到你想要的,指定 $start=0,即使用:

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

或者:

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

您可以在这里阅读更多信息:http substr(): //php.net/manual/en/function.substr.php

于 2011-05-17T18:07:02.690 回答
0

的定义substr()

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

您的代码设置$accountMask为最后 4 个数字$transaction['cc_number']

于 2011-05-17T18:08:12.550 回答
0

substr函数的签名是

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

在这里

所以你传入了字符串和开始的位置。在那之后它需要一切。如果你想让它做你所说的那样,你会想这样称呼它:

$accountMask = substr($transaction['cc_number'], 0, strlen($transaction['cc_number'])-4); 
于 2011-05-17T18:08:57.543 回答