简单的substr和strlen问题......我疯了

时间:2011-05-17 18:04:00

标签: php substr strlen

好的,看看这段代码:

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

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

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

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

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

右?

4 个答案:

答案 0 :(得分:2)

你的两个例子都做同样的事情。根据评论,请查看substr()

上的文档

特别是第二个参数:

  

如果开始是非负面的,那么   返回的字符串将从   在字符串中起始位置,计数   从零开始。例如,在字符串中   'abcdef',位置0的角色   是'a',位置2的角色是   'c',等等。

     

如果开始为否定,则返回   字符串将从start'th开始   字符串末尾的字符。

     

如果string小于或等于   开始字符很长,FALSE会   返回。

答案 1 :(得分:0)

  

string substr(string $ 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

答案 2 :(得分:0)

substr()的定义:

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

您的代码正在将$accountMask设置为$transaction['cc_number']

的最后4个数字

答案 3 :(得分:0)

substr功能的签名是

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

per here

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

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