这是我必须返回的php函数" 5"但它什么都不返回。
<?php
function get_second($num){
$second = $num[1]; //must return second number of the variable.
return $second;
}
$numbers=456789;
echo get_second($numbers);
?>
当我试用这段代码时,它什么都不返回(NULL,空)。 但是我在下面尝试了这个功能,工作得很好。
<?php
function get_second($num){
$second = $num[1]; //must return second number of the variable.
return $second;
}
$numbers=$_POST['number_input'];//that includes numbers
echo get_second($numbers);
?>
此代码返回第二个发布数据。我必须做些什么来完成我的第一个功能?第一个 $ numbers 变量和第二个 $ numbers 变量之间有什么区别?
答案 0 :(得分:1)
这里必须更好地定义问题:如何从数字中获取第二个数字。您的初始方法在逻辑上是正确的,但在假设数字是字符的顺序集时是不正确的。只有字符串是有序的字符集。将integer
45678转换为string
45678后,您可以使用substr或直接使用字符串轻松拦截第二个字符 - 因为在PHP中字符串可以视为字符数组。
@RamRaider解决方案比其他人提出的要好,但使用preg_split
是过分的。其他解决方案要求您修改变量的类型,这不是通过添加引号来完成的,而是通过强制转换为字符串来完成的,这比正则表达式更简单,更快,并且您保持原始形式的原始变量和原始函数定义。
function get_second($num){
$second = $num[1]; //must return second number of the variable.
return $second;
}
$numbers = 456789;
// casting to string
echo get_second((string)$numbers);
// or transform to string by concatenation to a string
echo get_second($numbers ."");
// even quoting works
echo get_second("$numbers");
// using strval
echo get_second(strval($numbers));
// using settype
echo get_second(settype($numbers, "string"));
答案 1 :(得分:0)
试试这个:(在整数变量中添加引号)
<?php
function get_second($num){
$second = $num[1]; //must return second number of the variable.
return $second;
}
$numbers="456789";
echo get_second($numbers);
?>
答案 2 :(得分:0)
如果你想通过它的编号获得Character,那么你可以使用substr()
function get_second($num)
{
return substr($num,1,1);
}
$numbers="456789";
echo get_second($numbers);
答案 3 :(得分:0)
您在$ number变量中声明了一个数字。 如果要查看第二个元素,则必须使用字符串。
试
$ numbers =“456789”;
它将输出5。
答案 4 :(得分:0)
您可以使用preg_split
强制一个数组,您可以通过索引从中选择任意数字,例如:
$number=12358397;
function get_number($num,$i){
$num=preg_split( '@^\d$@', $num );
return $num[0][$i];
}
echo ' [1] > > > ' . get_number($number,1);