我是一名从事PHP项目的VB.NET开发人员,我试图将我的VB.NET函数转换为php,但没有得到所需的结果。调试后我发现了substr函数的问题。
在VB.NET中我正在使用
mid(105,2,1)
This giving me output 0
但在php
substr(105,2,1)
Giving me output 5
答案 0 :(得分:3)
如果你想获得 PHP 中的0
,你的代码应该是:
echo substr(105,1,1);
<强> 输出: 强>
0
VB.NET 中的如果你想知道原因,请阅读:
mid
功能
Public Shared Function Mid( _
ByVal str As String, _
ByVal Start As Integer, _
Optional ByVal Length As Integer _
) As String
str - 必填。返回字符的字符串表达式。
开始 - 必填。整数表达式。要返回的字符的起始位置。如果Start大于str中的字符数,则Mid函数返回零长度字符串(&#34;&#34;)。 Start是一个基于 。
长度可选。整数表达式。要返回的字符数。如果省略或者文本中的字符数少于(包括Start位置的字符),则返回从起始位置到字符串结尾的所有字符。
<强> 实施例 强>
' Creates text string.
Dim TestString As String = "Mid Function Demo"
' Returns "Mid".
Dim FirstWord As String = Mid(TestString, 1, 3)
' Returns "Demo".
Dim LastWord As String = Mid(TestString, 14, 4)
' Returns "Function Demo".
Dim MidWords As String = Mid(TestString, 5)
PHP 中的 substr
功能
string substr ( string $string , int $start [, int $length ] )
string - 输入字符串。必须是一个字符或更长。
开始 - 如果start为非负数, 返回的字符串将从字符串中的起始位置开始,从零开始 。例如,在字符串&#39; abcdef&#39;中,位置0的字符是&#39; a&#39;,位置2的字符是&#39; c&#39;,依此类推。 / p>
如果开始为负数,则返回的字符串将从字符串末尾的起始字符开始。
如果字符串小于或等于开始字符长,则返回FALSE。
<强> 实施例 强>
<?php
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f
?>
阅读更多内容:
https://msdn.microsoft.com/en-us/library/05e63829%28v=vs.90%29.aspx
答案 1 :(得分:1)
substr()接受2个参数和一个可选的第三个参数
(字符串,开始位置,*结果长度)
*注意:结果长度
示例:
substr("abcde",2,1);
// string: "abcde"
// start position: 2 => returns "cde"
// result length: 1 => returns "c"
substr(105,2,1);
// string: "105"
// start position: 2 => returns "5"
// result length: 1 => returns "5"
你可以test substr online here。希望这会有所帮助。