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 二分法进行快速排序的原理

时间: 2024-08-24 21:13:19

PHP课程笔记5的相关文章

《nodejs+gulp+webpack基础实战篇》课程笔记(四)-- 实战演练

一.用gulp 构建前端页面(1)---静态构建 npm install gulp-template --save-dev 通过这个插件,我们可以像写后台模板(譬如PHP)一样写前端页面.我们首先学习一下写法. 现在我们创建一个新任务:创建一个裸的index.html文件,然后在body里面写上 ,我的年龄是:<%= age %> 下载好gulp-template,我们引用并配置 var gulp_tpl = require("gulp-template"); gp.tas

Linux操作系统及应用课程笔记 索引

第0部分  软件的安装与配置 Linux下软件的安装与配置 第1部分*   绪论 第2部分*  Linux的安装过程 第3部分   系统Shell和常用命令 Shell文件相关常用命令及参数总结 Linux下常用命令 第4部分  VI编辑器 Linux下vi编辑器的使用 <<学习vi和vim编辑器>>1 <<学习vi和vim编辑器>>2 第5部分  Shell脚本 Shell入门之脚本管理 Shell入门之测试操作 Shell入门之条件循环 Shell入门之

Andrew Ng机器学习课程笔记(五)之应用机器学习的建议

Andrew Ng机器学习课程笔记(五)之 应用机器学习的建议 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7368472.html 前言 学习了Andrew Ng课程,开始写了一些笔记,现在写完第5章了,先把这5章的内容放在博客中,后面的内容会陆续更新! 这篇博客主要记录了Andrew Ng课程第五章应用机器学习的建议,主要介绍了在测试新数据出现较大误差该怎么处理,这期间讲到了数据集的分类,偏差,方差,学习曲线等概念,帮

JAVA课程笔记_1

一 课程内容 set path查看路径信息:当编译一个程序或命令时,先从当前目录查找,如果没有,按path中的路径按顺序查找,先找到后就不查找后面的路径了. 可以将目录加入环境变量,set path="复制的路径" 可以在.java程序中编写多个类,当编译时,每个类生成各自的字节码文件. 由于多个类的字节码文件不利于管理,使用bin目录下的jar命令可以将多个字节码文件打包成jar包发布给其他程序员使用. 使用方法:先在命令提示符下输入jar,会出现使用方法和实例.Jar打包两个cla

Django开发BBS---51网络课程笔记(目录)

这是51cto中bbs课程中的一个项目,这里写一下每节的目录: Django开发BBS---51网络课程笔记(1) 这部分主要介绍了数据库的搭建及站点管理 http://4440271.blog.51cto.com/4430271/1663863 Bootstrap开发 这不分主要讲前端的设计 http://4440271.blog.51cto.com/4430271/1663934 Django开发BBS---51网络课程笔记(2) 这部分主要讲view与前端的衔接部分 http://4440

跟我学《JavaScript高程3》第三讲,课程笔记

跟我学<JavaScript高程3> 第三讲:第4章 课程制作:bling,兴哥,5年Java,3年前端 课程知识:JavaScript.Html.Css 课程目标:前端体系课程,逐步深入,找到一份前端工作    课程大纲:本书目录结构 适合人群:前端初学者,可以0基础,但要认真,踏实 课程回顾 1.数据类型:5种基本类型,1中复杂类型. 2.操作符:需要注意运算优先级,算关逻条赋逗. 3.语句:if-else.for.for-in.while 4.函数:函数定义,目前的两种方法 补充:变量在

【课程笔记】需求挖掘与分析

*…* 产品定位与分析有三部分内容:需求分析.用户调研.市场分析. 下面是前两部分内容的课程笔记,整理成思维导图.

(转)妙味课堂—JavaScrip中级课程笔记

DOM基础概念.操作 DOM的概念及节点类型 childNodes children nodeType attributes 子节点和兄弟节点的操作 firstChild firstElementChild lastChild.lastElementChild nextSibling.previousSibling 父节点 parentNode offsetParent 元素位置宽高 offsetLeft.offsetTop offsetWidth.offsetHeight getPos() 操

Android网络项目课程笔记-----Volley框架

Volley 问题原因: Android4.x版本和2.x对AsyncTask的机制不同 2.x之中,同时执行5个,4.x同时只有一个 解决思路: 1) 使用Thread + Handler 注意: 使用线程池 2) 定制AsyncTask线程池 3) 开源框架Volley 1. 检查网络 2. 退出 3. 总结 有待改进 做的比较好的 商业级项目: 1) 稳定性   不要轻易FC    运行时异常 2) 用户体验:流畅(性能)/美观 3) 可扩展性 4) 可读性 5) 异常流程:提示 + 指导

Android网络项目课程笔记-----计划

目标:好用 充分:1) 角色完整 产品经理   灵魂 美工  交互设计师 开发   架构师 开发者 测试 小部分用户 2) 运营推广 基础:能用 必须: 1) API   框架 2) 模块(一个功能集合) * 3) 业务流程 4) bug 具备解决大部分中等难度bug的能力 5) 自学新技术的能力 6) 阅读代码 不合格:1) 做不了,有难度.需要很长时间 2) 只是做了,对过程负责.对结果不负责 3) 只是掌握了某个功能的基本实现方法,一旦出了bug, 解决效率很低 4) 没做过,没把握 合格