编程语言您现在的位置是:首页 > 博客日志 > 编程语言

PHP自定义函数返回多个值

<a href='mailto:'>微wx笑</a>的头像微wx笑 2022-02-02编程语言 3 0关键字: php  函数  返回值  

PHP自定义函数只允许用return语句返回一个值,当return执行以后,整个函数的运行就会终止。有时要求函数返回多个值时,用return是不可以把值一个接一个地输出的。return语句可以

PHP自定义函数只允许用return语句返回一个值,当return执行以后,整个函数的运行就会终止。6pg无知

有时要求函数返回多个值时,用return是不可以把值一个接一个地输出的。6pg无知

return语句可以返回任何类型的变量,这就是使自定义函数返回多个值的关键。6pg无知


6pg无知

代码:6pg无知

<?php 
function results($string) 
{ 
    $result = array(); 
    $result[] = $string;//原字符串 
    $result[] = strtoupper($string);//全部换成大写 
    $result[] = strtolower($string);//全部换成小写 
    $result[] = ucwords($string);//单词的首字母换成大写 

    return $result; 
} www.jbxue.com
$multi_result = results('The quick brown fox jump over the lazy dog'); 
print_r($multi_result); 
?>
输出结果: 
Array 
    [0] => The quick brown fox jump over the lazy dog 
    [1] => THE QUICK BROWN FOX JUMP OVER THE LAZY DOG 
    [2] => the quick brown fox jump over the lazy dog 
    [3] => The Quick Brown Fox Jump Over The Lazy Dog 
以上代码创建了一个$result数组,然后把处理完毕并等待输出的值添加到$result中作为一个元素,最后把$result输出,这样做就实现了自定义函数返回多个值的目的。


6pg无知

数组的方式感觉不是很优雅,类或者结构的方式个人感觉更好。
6pg无知

/*
  class:Stock
  desc:用于getStockPrice方法实现多个返回值
  author:ivu4e.com
  date:2022-02-02
*/
class Stock{
  public $close = 0;     //上周五收盘价
  public $high = 0;      //本周最高价
  public $increase = 0;  //周最高涨幅
}
/*
  获取股票的上周五收盘价和本周最高价
*/
function getStockPrice($code, $beginDate, $endDate){
    $sk = new Stock();
    $pattern = '/^\d{6}$/';
	if (!preg_match($pattern,$code)){
       print_r($code . "不是有效的股票代码!<br><br>");
       return $sk;
    }
	
    $json =  getStockJson($code);
    $obj = json_decode($json);

    for ($i = count($obj->data) - 1; $i >= 0; $i--) {
    	$skinfo = explode(',', $obj->data[$i]);
      	if (count($skinfo) != 9){
          print_r($code . "文件中的数据不符合预期,不是有效的数据!<br><br>");
          break;
        }
        
        $stockTime = strtotime($skinfo[0]);
        if ($stockTime <= $endDate and $stockTime > $beginDate){
           $hh = floatval($skinfo[3]);
           if ($hh > $sk->high){
          	 $sk->high = $hh;
           }
        }
        if ($stockTime == $beginDate){
           $cs = floatval($skinfo[2]);
           $sk->close = $cs;
           break;
        }
        if ($stockTime > $beginDate){
           continue;
        }
        break;
	}
    
    return $sk;
}

可以简单的创建一个类的实例:$sk = new Stock();6pg无知

在访问一个变量时需要在前面加$符号,但是在访问类中的公共属性时,就不需要添加$,类似以下的方式:6pg无知

$sk->close

但是,php访问一个类的属性,不像其它语言那样是通过一个点,而是 -> ,如果php不是自己首先学习的或者主语言的话,是很容易在这上面踩坑的。6pg无知


6pg无知

本文由 微wx笑 创作,采用 署名-非商业性使用-相同方式共享 4.0 许可协议,转载请附上原文出处链接及本声明。
原文链接:https://www.ivu4e.cn/blog/lang/2022-02-02/1000.html

很赞哦! () 有话说 ()