php function用法如何递归及return和echo区别

php function用法如何递归及return和echo区别

这篇文章主要介绍了php function用法如何递归及return和echo区别,需要的朋友可以参考下

代码如下:

<?php

//模拟sql数据

$array = array(0=>'apple',1=>'banana',2=>'cat',3=>'dog',4=>'egg','5'=>'father');

//function 用法1

//arr 是传入的数据 $con 是条件

function f_1($arr,$con){

//这里的 array 是这个函数内私有的,不会和出面的array冲突

//所以,外地面的 array不里直接在内面用,里面的array也不能直接外面用

//先实例一个array

$array = array();

//for foreach while 用法都类似,具体baidu

foreach ($arr as $key => $value) {

//如果循环出来的 value 等于 con 的话,就把他加入到数组

if ($value == $con) {

//数组和变量的区别在于加了个 []

$array[] = array($key => $value);

}

}

//循环得到结果后 返回数组。所以,这个函数就是一个数组

return $array;

//return 执行后就终断了,无论后面还有什么代码 都不会被执行

//return可以看做是一个函数结束的地方

}

//function 用法2

//$con 可以是数组

function f_2($arr,$con){

//先实例一个变量

$code = '<ul>';

foreach ($arr as $key => $value) {

//里面的for循环 是 循环出con内容

foreach ($con as $value2) {

// .= 往后添加更多 连续定义变量

// 如果第一层数据循环出来的值,和第二层条件循环出现的值相同,添加到 变量里

//多个for循环来过滤数据也称为 递归

if ($value == $value2) {

$code .= '<li>'.$value.'</li>';

}

}

}

$code .= '</ul>';

//循环得到结果后 返回变量。所以,这个函数就是一个字符串

return $code;

}

//function 用法3

//在函数里 echo 和 return 有什么区别 看执行结果

function f_3($arr,$con){

//先实例一个变量

echo '<ul>';

foreach ($arr as $key => $value) {

//里面的for循环 是 循环出con内容

foreach ($con as $value2) {

// .= 往后添加更多 连续定义变量

// 如果第一层数据循环出来的值,和第二层条件循环出现的值相同,添加到 变量里

//多个for循环 去过滤数据也称为 递归

if ($value == $value2) {

echo '<li>'.$value.'</li>';

}

}

}

echo '</ul>';

}

?>

f_1 output start<br/>

<?php

//因为 f_1 是一个数组,我们可以打印出来

print_r(f_1($array,'banana'));

?>

<br/>f_1 output end

<hr/><br/>

f_2 output start<br/>

<?php

//f_2 是变量

$con = array('apple','father');

echo f_2($array,$con);

?>

<br/>f_2 output end

<hr/><br/>

f_2 output start<br/>

<?php

//f_3 已经在函数里面echo 了,所以在函数执行时不用echo

$con = array('apple','father');

f_3($array,$con);

?>

<br/>f_2 output end