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

发布于 2024-11-08 11:30:11 字数 404 浏览 3 评论 0原文

好的,看一下这段代码:

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

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

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

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

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

对吗?

Ok, so looking at this code:

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

I think it takes a number like this: 1234567890
And turns it into this: 123456

Am I crazy to think that the code is actually doing this: 7890 ??

In my opinion, if I wanted to show just the last 4 digits of a number like a CC number, I would do this:

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

Right?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无远思近则忧 2024-11-15 11:30:11

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

特别是第二个参数:

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

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

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

Both of your examples do the same thing. As per the comments check out the documentation on substr()

Particularly the second parameter:

If start is non-negative, the
returned string will start at the
start'th position in string, counting
from zero. For instance, in the string
'abcdef', the character at position 0
is 'a', the character at position 2 is
'c', and so forth.

If start is negative, the returned
string will start at the start'th
character from the end of string.

If string is less than or equal to
start characters long, FALSE will be
returned.

往事随风而去 2024-11-15 11:30:11

字符串 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

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

Returns the portion of string
specified by the start and length
parameters.

To get what you want, specify $start=0, i.e. use:

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

Or:

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

You could read more about substr() here: http://php.net/manual/en/function.substr.php

遮了一弯 2024-11-15 11:30:11

substr() 的定义:

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

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

Definition of substr():

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

Your code is setting $accountMask to the last 4 numbers of $transaction['cc_number']

纸短情长 2024-11-15 11:30:11

substr 函数的签名位于

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

此处

因此,您要传递字符串和起始位置。之后就需要一切了。如果你想让它做你所说的那样,你会想这样称呼它:

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

The signature for the substr function is

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

per here.

So you're passing in the string and the position to start at. It takes everything after that. If you wanted it to do what you said it looks like, you'd want to call it like this:

$accountMask = substr($transaction['cc_number'], 0, strlen($transaction['cc_number'])-4); 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文