PHP课程笔记5

课时109 list()函数的语法结构

1.list在等号左边,等号后边只能是一个数组.

2.list:将数组中的元素转为变量使用

3.list:数组中有几个元素,list中就有几个参数,而且参数一定是变量. 不过参数可以少, 那么数组的元素就没有了.

4.只能将索引数组转为变量,而且必须是连续的.

5.可以在list参数中通过空项选择性的接收数组中的元素.


课时110 each()函数的特性

1.each()只是一个函数,参数就是一个数组作为参数,返回的值也是一个数组.

2.返回的值是一个数组,数组固定有4个元素,而且下标也是固定的. 1(值)   value(值)  0(下标)  key(下标)

3.ecah()只处理当前的元素,将当前的元素转为数组信息.处理完后,指针向下一个元素移动.

4.如果指针已经在结束位置,如果再使用each()获取元素,返回false.


课时111 使用list( )、each( )和while循环遍历数组 1.

$arr = array("sce","zaj","vicky","coin");

while( list($key,$value) = each($arr) ){

echo "{$key} => {$value} <br>"; }

reset($arr);  //重置指针

echo "<hr>";

$arr = array("sce","zaj","vicky","coin");

while( list($key,$value) = each($arr) )

{ echo "{$key} => {$value} <br>"; }


课时112 使用数组的内部指针控制函数遍历数组

1.next():指针移动下一位 prev():指针向前移动一位 end():指针移动到最后 reset():指针移动到开头 key():取得当前的key current():取得当前的value


课时113 PHP超全局数组(预定义变量)概述

超全局数组:在PHP的脚本中,已经声明完的变量,你可以直接使用,变量的名字已经规定好了.

1.$_SERVER          服务器变量

2.$_ENV                 环境变量

3.$_POST               HTTP POST变量

4.$_GET                  HTTP GET变量

5.$_REQUEST       REQUEST变量

6.$_FILES             HTTP上传文件变量

7.$_COOKIE

8.$_SESSION       会话变量

9.$GLOBALS

一.数组(关联数组),和自己声明的数组是一样的操作方式

二.全局: 三:超: 每个预定义数组都有独特的能力


课时114 服务器变量$_SERVER和环境变量$_ENV

// 定义一个函数getIP()
function getIP()
{
global $ip;
if (getenv("HTTP_CLIENT_IP"))
$ip getenv("HTTP_CLIENT_IP");
else if(getenv("HTTP_X_FORWARDED_FOR"))
$ip getenv("HTTP_X_FORWARDED_FOR");
else if(getenv("REMOTE_ADDR"))
$ip getenv("REMOTE_ADDR");
else $ip "Unknow";
return $ip;
}
 
// 使用方法:
echo getIP();
 
getenv("REMOTE_ADDR")用来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。要想透过代理服务器取得客户端的真实 IP 地址,就要使用 getenv("HTTP_X_FORWARDED_FOR") 来读取。 但是如果客户端没有通过代理服务器来访问,那么用getenv("HTTP_X_FORWARDED_FOR") 取到的值将是空的。 else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR"); 表示如果getenv("HTTP_X_FORWARDED_FOR") 取到的值存在不为空(即客户端使用代理服务器的情况下),则变量$ip等于getenv("HTTP_X_FORWARDED_FOR") 取到的真实IP值。 如果上面的else if(getenv("HTTP_X_FORWARDED_FOR"))取得的值为空(即没有使用代理服务器),则不会执行下面的$ip = getenv("HTTP_X_FORWARDED_FOR");这一行语句。 这种情况下已经确认客户端没有使用代理服务器,从而通过 else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR"); 这两行语句获得客户端的IP地址也是真实的IP地址。

    php中getenv()和$_SERVER的用法区别:
    getenv 取得系统的环境变量,环境变量的格式为name=value.
    语法: string getenv(string varname);
    返回值: 字符串 函数种类: PHP 系统功能
    内容说明
    若正确取得环境变量 varname,则返回变量值.失败则返回 false.
    下例可以取得用户浏览器所在机器的网址
    <?php
    $ip = getenv(“REMOTE_ADDR”);
    ?>
    $_SERVER是服务器超级全局变量数组 用$_SERVER['REMOTE_ADDR']同样可以获取到客户端的IP地址.
    二者的区别在于,getenv不支持IIS的isapi方式运行的php

2. function getip() { if(!empty($_SERVER["HTTP_CLIENT_IP"])){ return $_SERVER["HTTP_CLIENT_IP"]; }else if(!empty($_SERVER["HTTP_X_FORWARD_FOR"])){ return $_SERVER["HTTP_X_FORWARD_FOR"]; }else if(!empty($_SERVER["REMOTE_ADDR"])){ return $_SERVER["REMOTE_ADDR"]; }else{ return "noknow"; } } echo getip();


课时115 PHP超全局数组介绍1

1.$_GET  接收用户通过url向服务器传的参数

2.$_POST  接收用户通过HTTP协议向服务器传的参数


课时116 PHP超全局数组介绍2


课时117 PHP常用数组函数的分类


课时118 PHP数组中与键和值有关的操作函数1

1.array_value() 使数组变成索引数组,返回数组所有的值

2.array_keys() 使数组变成索引数组,返回数组所有的键名


课时119 PHP数组中和键值搜索相关的函数2

1.in_array(值,数组,[true]) 判断值是否在数组中.区分大小写,第三个参数添加后连类型都得相等.

2.array_search() 在数组中搜索给定的值,如果成功返回键值

3.array_key_exists() 按给定键名查找是否存在数组中

4.isset() 如果数组里是空的, 它会返回假. 所以不够准确.


课时120 PHP数组中与键和值有关的操作函数3

1.array_filp()

把一个数组的键和值交换,生成一个新的数组.如果值有重复,那么后面的值会把前面的内容给覆盖.这个函数的原始数组里存的只能是字符串和整数.

2.array_reverse()

倒序数组,把原来的数组顺序逆序,然后生成新数组.

第二个参数如果是true,那么虽然是逆序,但是键值对还是原来的. (必须是索引数组才看的出来)


课时121 PHP数组中统计数组元素的个数与唯一性的函数

1.count() 如果用来计算字符串,只会输出 int 1,所以不能用来计算字符串.字符串用strlen();

2.count(数组,[1])可以递归计算数组,也就是计算多维数组,只要第二个参数传一个1就可以了, 默认0是不计算.

3.array_count_values()

计算数组中所有值出现的次数

4.array_unique()

把数组中的值重复的给删除,只保留第一次出现的.


 

课时122 PHP使用回调函数处理数组的函数array_filter()

1.array_filter()

用回调函数过滤数组中的单元. 默认时元素中被认为是假的值都过滤掉. 添加第二个参数后可以定义过滤的方式,用回调函数.

 


 

 课时123 PHP使用回调函数处理数组的函数array_walk()

1.array_walk()

对数组中的每个成员应用用户函数.第一个参数是数组,第二个参数是操作, 可以是一个回调函数.

 


课时124 PHP使用回调函数处理数组的函数array_map()

1.array_map(回调函数,数组)

将回调函数作用到给定数组上.

arrar_may(null,$arr,$brr); 会使数组变成二维数组.使$arr,$brr合并.

 


课时125 PHP中的冒泡(起泡)排序算法

 

<?php

$arr = array(0,1,2,3,4,5,6,7,8);

 

function maopao($arr){

$len = count($arr)-1;

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

for($j = 0;$j < $len-$i;$j++){

if($arr[$j] < $arr[$j+1]){

$tmp = $arr[$j+1];

$arr[$j+1] = $arr[$j];

$arr[$j] = $tmp;

}

}

}

return $arr;

}


 课时126 PHP 二分法进行快速排序的原理

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