php 数组作用域,do·while循环_函数参数和作用域_数组操作_2018年8月23日

1.do while实例

/**

* do while

*/

for ($i=0; $i<10; $i++){

echo $i<9 ? $i.'->' : $i;

}

echo '


';

$i=0;//初始化值

while ($i<10){ //条件

echo $i<9 ? $i.',' : $i;

$i++; //更新条件

}

echo '


';

$i=1;

while($i<5){

$c=1;

while($c<5){

echo "{$i}*{$c}=".$c*$i.' ';

$c++;

}

$i++;

}

echo '


';

$x=6;

do {

echo "这个数字是:$x 
";

$x++;

} while ($x<=5);

运行实例 »

点击 "运行实例" 按钮查看在线实例

2.函数参数与作用域实例

/*

函数的参数与作用域

*/

//声明

function d($b,$c){

if(empty($b) || empty($c)){

return '没有参数';

}

$a=$b+$c;

return $a;

}

//调用: 按名调用,名称后跟上一对圆括号

var_dump( d(5,5));

//当有可选参数的时候,必须把必选参数往前放

function learning($url,$sitename='php中文网'){

$open="".$sitename."";

return $open;

}

echo learning('http://www.php.cn').'


';

//参数实际就是一个占位符,仅供参考,可以没有

function hi()

{

return print_r(func_get_args(),true);

return func_get_arg(1); //获取指定位置参数的值

return func_num_args(); //获取参数的数量

return (func_get_arg(0) + func_get_arg(1) + func_get_arg(2));

}

echo hi(4,5,6).'


';

$hiName = 'hello';

// php中只有函数作用域,函数外部声明的变量在函数内部不能直接使用

function hi1()

{

global $hiName;

//    return $hiName;

return $GLOBALS['hiName'];

}

echo hi1();

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.数组操作实例

/**

* 1.常用的键值操作

* 2.数组内部指针操作(巡航)

*/

$book = ['id'=>5, 'name'=>'php', 'price'=>66, 'role'=>'学习php'];

echo '

',print_r($book,true);

//in_array()判断数组中是否存在某个值

echo '


',in_array('php',$book) ? 'yes' : 'no';

//array_key_exists():判断某个键名是否存在于数组中?

echo '


',array_key_exists('name',$book) ? '有' : '没有';

// array_values():以索引方式返回数组的值组成的数组

echo '


',print_r(array_values($book),true);

// array_keys() //返回键名

echo '


',print_r(array_keys($book),true);

// array_search():以字符串的方式返回指定值的键

echo '


',print_r(array_search('66',$book),true);

//键值对调array_flip()

echo '


',print_r(array_flip($book),true);

//array_filter()过滤数组中的元素

function text($var){

$var=$var+2;

return($var & 1);

}

echo '


',print_r(array_filter($book,"text"),true);

$a=2;$b=3;

$c=$a&$b;

echo '


',$c,'
';

//数组的内部操作

echo count($book),'


'; //统计数组

echo key($book),'


';//key()返回当前元素的键

echo current($book),'


';//current()返回当前元素的值

next($book);//next()指针下移

echo key($book),'
';

echo current($book),'
';

next($book);//next()指针下移

echo key($book),'
';

echo current($book),'
';

//复位

reset($book);

echo key($book),'
';

echo current($book),'


';

//尾部

end($book);

echo key($book),'
';

echo current($book),'
';

reset($book);

// each()返回当前元素的键值的索引与关联的描述,并自动下移

print_r(each($book));

//print_r(each($book));

//print_r(each($book));

//list() //将索引数组中的值,赋值给一组变量

list($key, $value) = each($book);

echo $key, '******', $value,'


';

$i=0;

// while,list(),each() 遍历数组

reset($book);

while (list($key, $value) = each($book) and $i<2) { //只取前2条

echo $key , ' => ', $value, "[$i]" ,'
';

$i++;

}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4.用数组模拟出栈入栈实例

/**

* 使用数组来模拟堆栈和队列操作

*/

$car=['id'=>5 , 'color'=>'white' ,'brand'=>'BMW' ,'price'=>'10W' , 'inventory'=>9];

echo '

',print_r($car,true);

//echo '当前长度: '. count($car), '
';//count() 函数用于返回数组的长度(元素数)

//入栈:array_push()返回新数组的长度= count()

//$a=[1,2,3];

//echo array_push($car, $a);

//echo array_push($car, '店庆活动车');

//echo '


',var_export($car);

//echo '


当前长度: '. count($car), '
';

//print_r($car);

echo '


';

//array_pop()删除数组的最后一个元素(出栈)。

//echo array_pop($car),'
';

//echo array_pop($car),'
';

//echo array_pop($car),'
';

//print_r($car);

//reset($car);

//print_r($car);

//队: shift(),unshift()

//echo array_unshift($car, '顶配','3年质保');

//echo print_r($car,true).'


';

//

//echo array_shift($car),'
';

//echo array_shift($car),'
';

//echo array_shift($car),'
';

//print_r($car);

//模拟队列操作: 增删只能在二端进行,不允许同一端进行

array_unshift($car,'降价2W');// 头部进队

echo print_r($car,true);

array_pop($car); // 尾部出队

echo print_r($car,true),'


';

array_push($car, '送大礼包'); //尾部进队

print_r($car);

array_shift($car); // 头部出队

print_r($car);

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:do while循环是先执行一次代码块再判断,while与for类似。

函数的参数是可选的,如果要加参数必选的参数排在前面。

在函数中引用全局变量可以函数中用GLOBAL声明或直接GLOBALS['*']来使用。

用数组来操作内部值,以及用数组模拟入队出队。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值