我是一個VB.NET開發人員在PHP項目上工作,我試圖將我的VB.NET函數轉換爲PHP,但沒有得到所需的結果。調試後,我發現substr函數有問題。substr函數返回錯誤的結果在php
在VB.NET我使用
mid(105,2,1)
This giving me output 0
但是在PHP
substr(105,2,1)
Giving me output 5
我是一個VB.NET開發人員在PHP項目上工作,我試圖將我的VB.NET函數轉換爲PHP,但沒有得到所需的結果。調試後,我發現substr函數有問題。substr函數返回錯誤的結果在php
在VB.NET我使用
mid(105,2,1)
This giving me output 0
但是在PHP
substr(105,2,1)
Giving me output 5
如果你想獲得0
在PHP你的代碼應該是:
echo substr(105,1,1);
Outpu T:
0
如果你想知道爲什麼,閱讀:
mid
功能VB.NET
Public Shared Function Mid(_
ByVal str As String, _
ByVal Start As Integer, _
Optional ByVal Length As Integer _
) As String
STR - Requir編輯。從中返回字符的字符串表達式。
開始 - 必填。整數表達式。要返回的字符的起始位置。如果Start大於str中的字符數,則Mid函數會返回一個零長度字符串(「」)。 開始是一個基於。
長度可選。整數表達式。要返回的字符數。如果省略或文本中的長度字符數少於(包括位置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)
substr
功能PHP
string substr (string $string , int $start [, int $length ])
串 - 輸入字符串。必須是一個字符或更長。
開始 - 如果啓動非負,返回的字符串將在字符串中的start'th位置開始,從零計數。例如,在字符串'abcdef'中,位置0處的字符是'a',位置2處的字符是'c',等等。
如果開始爲負數,則返回的字符串將從字符串結尾的第start個字符處開始。
如果字符串小於或等於起始字符長,則返回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
@ Rizier123你讀了整個兩頁(鏈接)?並且您無法在此鏈接中看到任何附加信息? –
@ Rizier123我只想寫一個有用的問題的答案,爲此我需要寫一些關於函數的解釋。真的,我不明白我做錯了什麼。 –
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。希望這可以幫助。
閱讀手冊http://php.net/substr – Saty
我不知道它是如何在VB.NET中索引的,但是對於PHP而言,它的索引基於0,因此請更改2 - > 1。 '$ str =「105」;','$ str [0] - > 1','$ str [1] - > 0','$ str [2] - > 5' – Rizier123
'echo substr(105,1 ,1);' –