php课程笔记4

课时83 PHP引用参数的函数

1.只有在内存中的变量,才有地址.

2.有引用关系的两个变量,一个改变,另一个也改变

3.如果在函数中,有&出现,说明这个参数是一个引用参数,在调用时传参数时,就必须传一个变量.


课时84 PHP默认参数的函数

1.默认参数一定顺序要在后面, 默认参数后不能有没加默认参数的变量.


课时85 PHP可变个数参数的函数

1.$arr = func_get_args();

此函数可以接收所有变量. 形成一个数组.

2.func_num_args();  输出参数个数'

3.

function demo() {

$sum = 0;

if($i=0; $i<func_num_args();$i++){

$sum += func_get_arg($i);

}

return $sum;

}


课时86 PHP变量函数

1.  function add($a,$b){

return $a+$b;

}

$var = "add";

echo $var(40,23);

 

2.如果将一个函数名称给一个变量(字符串),然后在这个变量后面加上括号就会调用这个函数.


课时87 PHP回调函数

1.在使用一个函数的时候,如果传一个变量不能解决多大的问题,就需要传一个过程进入到函数中.改变函数的执行行为.

2.在函数的调用中,在参数中传递的不是一个变量或一个值,而是一个函数,这就是回调函数.


课时88 PHP制作回调函数1

<?php

function demo($n,$num){
$num = "aida";
for($i=0;$i<$n;$i++){
if($num($i)){
continue;
}
echo $i."<br>";
}
}
function aida($i){
if($i>10 && $i<20){
return true;
}

}

echo demo(100,"aida");

?>

 

用了回调函数,用了变量函数.


课时89 PHP制作回调函数2

/*
function demo($num,$n){
//if($n($i))
for($i=0;$i<$num;$i++){
if(call_user_func_array($n,array($i))){
continue;
}
echo $i."<br>";
}
}
function test($i){
if($i == strrev($i)){
return true;
}
else{
return false;
}
}
demo(500,"test");

*/


 课时90 PHP制作回调函数3

function demo($num,$n){
//if($n($i))
for($i=0;$i<$num;$i++){
if(call_user_func_array($n,array($i))){
continue;
}
echo $i."<br>";
}
}

class filter{
function one($i){
if($i%3==0){
return true;
}
}
static function two($i){
if(preg_match('/3/',$i)){
return true;
}
}
}

function test($i){
if($i == strrev($i)){
return true;
}
else{
return false;
}

}
//demo(500,array(new filter(),"one"));
demo(500,array("filter","two"));


课时91 PHP系统函数

$dirname = 'd:\music';

function dirfor($dirname){
$dir = opendir($dirname);

readdir($dir);
readdir($dir);
while( $file = readdir($dir)){
$file = $dirname."\\".$file;
if( is_dir($file)){
echo "目录:".$file."<br>";
dirfor($file);
}else{
echo "文件:".$file."<br>";
}

}
closedir($dir);
}
dirfor($dirname);


课时92 PHP递归函数

函数调用自己就是递归.


课时93 PHP加载自定义的函数库

1.

include();

require();

 

require和include都是调用调用页面的函数, 但require是程序执行必须要的文件,如果发现不存在,就会报致命错误.而include只是程序执行所包含的文件,如果发现不存在,就只会警告文件不存在.

补充: require没有返回值,而include没有,所以require的执行速度比include快.

避免一次包含同一文件,使用require_once()或include_once().但能用require时就别用require_once(),因为效率高.

 

2.include包含文件的同时又执行了非PHP文件.

如果是非PHP文件,就直接输出.


课时94 PHP5.3的新特性匿名函数

1.匿名函数

$var = function(){

};  //一定要加分号结束

也叫闭包函数.


课时95 PHP闭包函数(closures)的概念

1.子函数可以使用父函数的局部变量,就叫做闭包.

function demo(){

$a = 10;

$var = function($n) use ($a){

echo $n."<br>";

echo $a;

};

$var(5);

}

 

demo();


课时96 PHP闭包函数(closures)的特性

闭包函数返回时,该函数内部变量处于激活状态,函数坐在栈区仍然保留.


 课时98 PHP数组的概述


课时99 PHP数组的基本概念及分类

1.数组的内容叫做"元素".

2.键值对

3.索引数组,关联数组


 

 课时100 PHP数组声明的特性

1.[ ]来操作下标,也可以使用{}. 但建议使用[ ].

2.数组中的[ ]在字符串中不算是特殊符号.

3.下标02不会是一个合法的十进制数,所以不会强制转换.

4.下标true会转换成1,false会转换成0

5.下标是NULL就是空.


 

课时101 PHP索引和关联数组及需要注意的细节

1. 下标相同的内容会被覆盖.

2.数组的自动下标默认是从0开始,然后一直增长,只会是出现过的最大值+1.

3.关联数组的字符串下标不会影响索引下标的排列规则.

4.负数也可以做为下标.


课时102 PHP使用array()声明数组

1.函数如果返回的是数组, 那要用时可以直接在函数后面加[ ]和下标. 例如  demo()[2];

2.数组声明也可以使用 $arr = ['2','3','5'];


课时103 PHP删除数组中的值应用实例(猴子选大王)

1.在数组中把值变成null,下标还会在, 但用unset()会连下标都消失. 下标不会重新索引,需要使用array_values()函数重新索引.

2.

<?php

function xdw($m,$n){
$arr = array();

$a = "a";

for($i=0;$i<$m;$i++){
$arr[] = $a++;
}

$i=0;
while(count($arr)>1){
if(($i+1)%$n == 0){
unset($arr[$i]);
}else{
$arr[] = $arr[$i];

unset($arr[$i]);
print_r($arr);
}
$i++;

}
return $arr;

}

print_r(xdw(4,3));

?>


课时104 PHP二维数组的声明与应用


课时105 PHP多维数组

1.如果二维数组为空则会变成外层增加,里层为0;

$array[][]="23";

$array[][]=44;

只会在外层从0到1,内层都是0.


 

课时106 使用for循环遍历数组

1.效率很高,就是数组的访问方式.

2.count($arr)获取数组长度.是数组的实际元素的个数.

3.for循环有一个条件,就是下标不能断.必须是连续的.


课时107 使用foreach语句遍历数组

1.foreach(数组   as  自定义变量){

......

}

2.foreach循环的次数取决与数组的个数

3.foreach会将数组中的元素,在每次循环中,一次将元素的值给自定义的变量.在每次循环中用到这个变量,即用到了当前的数组中的元素.


课时108 使用foreach语句遍历数组的应用

posted @ 2014-12-01 00:07  Xavier小灰  阅读(157)  评论(0编辑  收藏  举报