php 入门笔记

1、web服务器原理php

浏览器:不算开发技术,可是是开发者工具,能帮助咱们到服务器去找脚本并进行解析html

了解浏览器的差别前端

开发时须要安装多个浏览器测试兼容效果mysql

大体可分为两大类: IE 和 其余程序员

能够先按照火狐、谷歌等开发,再去修改,兼容IEweb

将前端代码放服务器上 web是客户端的服务算法

web服务器(想将静态网页发布出去就须要web服务器)是一款软件,有apache、Nginx、Tomcat、IIS等
(其实本身也能够尝试写一个web服务器,须要懂http协议等)sql

动态网站就是人机交互,想搜索就能出现页面,就须要服务器去处理,在服务器上和web服务器装在一块儿的就要有在服务器端工做的脚本语言,数据库

服务器端对服务器的处理,操做系统的结构、服务器的目录结构、数据库中的数据结构,文件数据,用户经过访问web服务器,web服务器结合服务器的编程语言
什么都能作到。apache

服务器端编程语言 php,jsp,asp等中的一种

数据库管理系统 MySQl、Oracle、SQL Server 等中的一种

基于数据库的网站才是动态网站 得会一到几种数据库管理软件

了解工做中的业务和工做流程以及一些算法。

web工做原理:(BS结构)

服务器上要有操做系统

操做系统中要安装一个web服务器,web服务器会开一个端口(通常是80端口)

http://www.baidu.com 配置网络时必定要配置DNS,可将输入的域名翻译为地址

url组成:

一、协议:http 传输协议 (不写的话,浏览器会自动添加上)协议有一些缺省的东西,不写会自动补全

二、主机:ip 或 域名 (如www.baidu.com)

三、端口:80(web服务器默认端口)经过端口区分访问的是哪一个软件,普通端口是1024-65535之间的整数

经常使用协议端口是0-1024之间的整数

apache服务器:经过它能够访问 文档根目录 root ,

四、内容:php/index.php

五、参数:?page=10

 


经过在浏览器输入url(访问html的url),向web服务器发送请求,服务器返回相应的html文件给浏览器,浏览器对文件进行解析渲染

web服务器没有解析语言的功能,可是浏览器只能解析html文件,因此须要在web服务器中扩展语言解析器

如须要解析php,就要装php解析器。php在服务器端解析,因此是服务器脚本语言,html在浏览器即客户端解析

因此是客户端脚本语言

服务器端还要安装数据库


语言自己没有大量存储的功能,因此须要在服务器端安装数据库

数据库:MySQL Oracle SQL server

php能够做为访问数据库的客户端链接数据库 数据库和web服务器不必定要安装在一台服务器上

2、几种主流的web应用程序平台

开发准备:操做系统 web服务器 数据库 脚本语言

微软系列: window IIS SQL server Asp(C#) Asp.net

Linux Apache(发布网站的) MySQL php 简称LAMP(最合适)


Unix tomcat Oracle Jsp JavaEE平台组合

(性能好,针对特定机器写的,不会死机,很稳定,不跨平台不跨机器)

 

3、LAMP 网站开发组合

能够尝试去学习一下Linux操做系统

 


PHP 的学习


1、php的运行环境

Linux下的安装三种方式

源码包安装
rpm包安装
集成软件安装
xampp

集成软件安装 xampp (只建议学习使用,由于apache,mySql版本不能直接单独选择)

Windows 安装的两种方式

单个下载安装

集成环境安装

php版本,5.3.一、、、

集成软件有 appserv、phpstydy 、wampserver(推荐使用的)

2、安装php的运行环境

环境结构

启动、中止、重启

各个软件的“家目录”

各个软件的配置文件

其余一些结构


3、php基础

一、php功能介绍

PHP 超级文本预处理器

-服务器端脚本语言运行 (主要的方向 开发动态网站)
-命令行脚本运行
-客户端图形界面(GUI)程序

phpinfo();打印全部php的环境信息以及模块信息,不光可测试环境是否安装失败

Loaded Configuration File 配置文件的位置


PHP在web开发中的应用(既能够作网站也能够作应用软件)

1)php是一种在服务器端执行的嵌入HTML文档的脚本语言
2)php是目前最流行的网站开发语言(B/S结构)
3)php独特的语法混合了C、Java、Perl 以及php 自创新的语法

支持几乎全部流行的数据以及操做系统

php特色:

1)是开方源代码的,服务器端的脚本语言
2)独立于操做系统,能够运行在几乎全部系统中
3)支持大部分的服务器
4)支持大量数据库
5)能够建立图象
6)还有一些其余功能在后面的高级技术详细介绍

php的发展

互联网相关企业几乎都在用php语言进行网站开发

4、第一个php程序,PHP语言标记及指令分隔符“分号”

php的开发步骤:

1)使用编辑器建立一个包含源代码的磁盘文件
2)将文件上传到web服务器上
3)经过浏览器访问web服务器运行程序


php的基本语法:


四种可让php解析的标签

<?php

echo "咱们交个朋友<br>";
?>

<?

echo "不行<br>"; (这种可能会跟xml发生冲突)
?>

<%
echo "hello<br>";

%>

<script language="php">嗨<br></script>


5、PHP程序注释及空白的使用

指令分割符 分号""

//功能执行语句,后面必须加分号
echo "aaaaaaaaaaaaaa";
//结构定义语句,后面必定不要加分号
if(true){
}
while(){
}
class demo{}
function demo(){
}

PHP须要在每一个指令后用分号结束。和其余语言不同的是,在php中括号(?>)
前的分号不是必选的

程序注释*******

//......单行注释
/*.......*/多行注释 (注意不能嵌套)
#..... 脚本注释
/**.....*/文档注释 (也不能嵌套)

程序员在编辑时使用注释是一种良好的习惯,优势:

写过不合适的代码注释
写帮助文档
调试程序

注意:注释要写在代码的上面或是右边


程序中使用空白的处理


6、php变量在计算机内存中的存储


一、变量的声明 (想用数据先放到变量里面)

变量是用于临时存储值的容器。这些值能够是数字、文本、或者复杂得多的排列组合。是用于跟踪几乎全部类型信息的简单工具
php是一种很是弱的类型语言,php变量的类型不是由程序员设定的,确切的说,是根据该变量使用的上下文在运行时决定的。php不要求在使用
变量以前声明变量,当第一次给一个变量赋值时,你才建立了这个变量

内存划分:栈内存 变量名 地址

二、变量的声明及变量的命名

1)变量名予以 $开始
2)变量的名称声明时必定要有意义
3)不合法的变量名:不能以数字开头,不能有运算符号(关键字是能够做为php的变量名称使用)
4)变量名区分大小写(驼峰式命名方式)

三、工具函数

var_dump(); 打印一个变量的内容和类型

isset($a); 判断一个变量是否存在,返回的值为布尔类型的值

unset($a); 清除变量a

empty($b); 判断b的值是否为空


四、可变变量

$hello = "world";
$$hello = "name";
$$$hello = "age";
$$$$hello = "sex";
echo $hello;
echo "<br>";
echo $world;
echo "<br>";
echo $name;
echo "<br>";
echo $age;

有时候使用可变变量名是很方便的。就是说,一个可变变量获取了一个普通变量的值做为这个可变变量
变量名

五、变量的引用

引用操做符 & 能够在关联赋值中使用,就像一个别名,使得变量都指向了内存的相同地址

$a = 10;
$b = 20;
$c = &$a; (就像给变量取了个别名)
$a=100;
echo $a;
echo "<br>";
echo $c;
$c=500;
echo "<br>";
echo $a;
echo "<br>";
echo $c;

1)只有变量才有地址,只有变量才能有引用
2)一个变量发生变化,另外一个变量的值也会变化
3)在使用unset()这个函数时,若是有引用关系,只是解除了这种
引用关系,只删除一个名字,另外一个还在。
4)若是两个变量是应用关系,一个变,另外一个也变;但若是给其中一个引用
不是普通的值,而是一个新的引用,则改变引用关系。

六、php变量类型的介绍

php是弱类型语言,类型是由值决定的

PHP支持八种原始类型——var_dump()
--四种标量类型:

布尔类型(boolean)
整型(integer)
浮点型(float)(浮点数,也做double)
字符串(String)
--两种复合类型:
数组(Array)
对象(Object)
--最后是两种特殊类型:
资源(Resource)
NULL

一个变量赋值为空,就是清除了这个变量

echo "如下是四种变量类型<br>";
$var = true;
var_dump($var);
echo "<br>";
$var = 10;
var_dump($var);
echo "<br>";
$var = 10.12;
var_dump($var);
echo "<br>";
$var = "hello world";
var_dump($var);
echo "<br>";
echo "如下是两种复合类型<br>";
$var = array("one","two","three");
var_dump($var); //array
echo "<br>";
echo "<br>";
class Demo{
var $one = 10;
var $two = 20;
var $three = 30;
}
$var = new Demo;
var_dump($var); //object
echo "<br>";


echo "如下输出两种特殊的类型<br>";

$var = mysqli_connect("localhost",'root',"");
var_dump($var);
echo "<br>";
$var = null;
var_dump($var);
echo "<br>";

1)php布尔类型(boolean)

boolean为假值的状况:boolean的false
int 0
float 0.0 0.00
string ""
string "0"
array 空数组为假
其余状况均为真值


2)整型和浮点型

整型值能够用十进制、十六进制、八进制符号指定,前面能够加上可选的符号(-或者+)表明数值的正负

整数值有最大的使用范围,这与平台有关,对于32位系统而言范围:

负的2的31次方到正的2的31次方,31位存储位,一位符号位
-2147483648~2147483648,PHP不支持
无符号整数。若是超出了则变成float型。

ord()这个函数能够输出ASSI码值 eg、 echo ord("h");

整数声明方法: $a = 10; 十进制
$b = 077; 八进制
$c = 0xff; 十六进制

mkdir("/user/hello",0755);


3)浮点数(也叫双精度数或实数)

是包含小数部分的数,一般用来表示整数没法表示的数据,如金钱值、距离值、速度值等

浮点数的字长和平台相关,尽管一般最大值是 1.8e308 并具备14位十进制数字的精度

能够用如下任何十进制数字的精度,到必定长度会以科学计数法显示

浮点数是一个近似数,不要用等号去判断两个浮点数是否相等

4)字符串的声明及定义

(1) 一个字符 ,和多个字符都是字符串
(2)字符串的声明须要用 单引号 或 双引号引发来
(3)字符串是没有长度限制的 "" " " "无限长"
(4) 在单引号中可使用双引号,在双引号中可使用单引号
(5) 在单引号中不能再使用单引号,在双引号中不能再使用双引号
(6) 在单引号和双引号中可使用转义字符 \,能够将没有意义的字符变得有意义,
也能够将有意义的字符变得没意义


5)PHP变量的其余数据类型

$arr = array(1,2,3,4,5);
$arr2=array(
"foo"=>"bar",12=>true
);
class Person{
var $name;
var $age;
var $sex;
function say(){
}
function eat(){
}
$person = new Person();
}
$file = fopen('text.txt',"r");
echo fread($file);
fclose($file);

6)伪类型
并非php语言中的基本数据类型,只是由于php是弱类型语言,因此在一些函数中一个参数能够
接收多种类型的数据,还能够接收别的函数做为回调函数使用,为了确保代码的易读性介绍一些伪类型的使用
mixed :说明一个参数能够接受多种不一样的类型
number:说明一个参数能够是integer 或者 float
callback:接受一个用户自定义函数做为参数


七、 php的数据类型之间的转换和检测

getType() 获取变量类型

1)强制转换

(1)setType(变量,类型); 将什么变量设置为何类型 ----是将原变量给转换了
(2)在变量使用时,前面加上类型符号 ----- 是在赋值时给新变量一个新类型,原变量类型不变
$int = "100000";
$d = (int)$int;
echo getType($d);

(3)intval(),floatval(),strval() 也是将新变量转换了,原变量不变


八、 常量的声明和使用

一旦声明,这个常量的值不会被改变

初始化静态段 ----里面存的数据不灵活

1)常量是使用函数 define()声明的
define("ROOT",10);
2)若是常量没有声明,则常量名在使用时,会自动转为字符串(效率很低)
error_reporting(E_ALL& ~E_NOTICE);
$root = "localhost";

echo ROOT;

输出字符串“ROOT”
3)常量名称不要加 $符号

4)常量名称默认区分大小写 习惯上常量的名称要所有大写

5)可使用define()第三个参数决定是否让这个常量名称区分大小写 true false

变量都区分大小写,常量能够自定义区分大小写,其余php语法都不区分大小写

6)常量的值只支持标量数据类型

7)常量不能使用 unset()释放

8) 可使用defined()判断 一个常量是否存在

if(defined("ROOT")){
echo ROOT+10;
}else{
echo "1111111";
}


能够用函数constant()来读取常量的值
用get_defined_constants()能够得到全部已定义的常量列表

9)常量有魔术常量和系统常量

魔术常量 值不像PI 同样,它的值在环境发生变化时会改变,如_LINE_文件中的当前行号

几个php的魔术常量

_LINE 文件中的当前行号
_FILE 文件的完整路径和文件名
_DIR 文件所在的目录
_FUNCTION 函数名称
_CLASS 类的名称
_NAMESPACE 当前命名空间的名称

 

九、PHP的运算符

运算元 运算符 运算元
1 + 1

一元运算符 +1 -1 ++ -- ==

二元运算符 + - * / % > < = == ===

三元运算符 1?2:3

$a = 10

算术运算符号 + - * / % ++ --

赋值运算符号 = += -= *= /= %=

比较运算符 > < == >= <= ===?= ?==

逻辑运算符 && || !

位运算符号 & | ~ >> <<

其余运算符号 ?: @ =>

1)算数运算符号

除数不能为零

在其它语言中(不是在PHP中),+号除了有 加法的做用, 还有链接字符串的功能

$a = 10;
$b = 5;
echo $a/$b;
echo "<br>";
echo 1+1+"4+5+6"+1+1; //会将字符串自动转换为相应的数据类型,因此会转为4
echo "<br>";
echo 1+1+"4e+5+6"+1+1; //会将字符串自动转换为相应的数据类型,因此会转为4乘以10的5次方

% 余数的结果,正负号取决于前面的数,跟后面无关

1)让一个数不超过一个值(计算范围)
2)求什么被整除
if($num%4 == 0){}

13.45%2.23456 其实对小数求模没有意义,php中会割舍为整数而后求模

++ 自增
$a = 5;

$a++ 先用再加

++$a 先加再用


2) 赋值运算符

= += -= *= /= %= .=(将变量与所赋的值相连后的结果赋给该变量)

“.” 能够直接连变量或者字符串,可是不能直接连整数等

单引号不解析变量,双引号能够解析变量

echo "这个变量的值:".$a."<br>";
echo "<br>";
echo "这个变量的值:$a<br>";

3)比较运算符

(1)比较后的结果是一个 boolean值,用在if和while等语句中

4>3 true

== 比较的是内容
====全等,不只内容要相等,并且两边类型要相等
4)逻辑运算符

就是将比较运算符链接在一块儿

&& || !

逻辑运算符的特性:

特性: 短路

$a =1;

&& and $a > 5 && $a < 100 明明两边都要执行,前边若是不成立后面也就不去执行了

|| or
$a = 8;

$a > 5 || $a < 100

boolean 型不参与++运算

赋值运算符优先级最低

$a=0;
$b=0;

if($a = 3 && $b = 3){

$a++;
$b++;
}
echo $a.",".$b; //1,4

$a=0;
$b=0;

if($a = 3 || $b = 3){

$a++;
$b++;
}
echo $a.",".$b; //1,1

 

5)php中的位运算符


& 按位与 | 按位或 ^ 按位异或 ~ 按位非 << 左移 >> 右移

6)其余运算符

运算元 ? 运算元 :运算元

条件 ? 语句 :语句

条件 ? 表达式 : 表达式

一 ? 二 : 三

若是"一"的条件成立,则执行 "二",不然执行 "三"

7)php运算符的优先级和表达式

 

十、 PHP流程控制

顺序结构
分支结构
{
一、单一条件分支结构 (if)
二、双向条件分支结构 (if 加上 else从句)
三、多向条件分支结构 (if else if子句,switch语句)

在多路分支(if else if)中,只能进入一个 ******

switch-case语句语法

一、switch()括号中,必须是一个变量
二、在switch(){}中放的是多个case 语句,case空格,后面放的是值,
值的后面使用一个 冒号:

switch (变量){
case 值1:
语句;
语句;
语句;
语句;
语句;
break;
case 值2:
语句;
语句;
语句;
语句;
语句;
[break;] (可选)
case 值3:
语句;
语句;
语句;
语句;
语句;
break;
default:语句;
break;

}

switch case 须要注意的一些细节:

一、若是在case中语句过多,就须要将多个语句作成一个函数之类
二、switch(变量) 变量的类型 只能容许两种类型: 整型和字符串
三、break 是退出switch结构使用的,若是须要同时匹配多个值时,可使用多个case而不加break;

else if 判断范围时使用
switch case 使用于单个值匹配进行分支

 

四、巢状条件分支结构

指的是在语句中能够再嵌套几层

}

 


循环结构


while语句

do...while 循环

for 语句

goto 语句

特殊的流程控制语句


循环必须有退出循环的条件,

while 循环不是作计数用的,适合条件循环

for 循环 计数用

do-while 程序会先执行 do语句体中的语句,而后再检查表达式的值,若是符合条件表达式,就再
进行 do 语句体中的语句,直到条件不符合为止

while(条件表达式){
循环体
}

//第一步先执行 表达式, 表达式为true时, 才执行循环体

do{
循环体
}while(条件表达式);

//第一步 先执行循环体,再判断条件表达式,成立则执行下一个循环体


循环结构for语句 (适合用计数作循环)


for( 表达式一;表达式二 ; 表达式三 ){

echo "循环体<br>";
}

第一部分,先执行表达式一,
第二部分,再执行表达式二,
第三部分,再执行 循环体,
第四部分,再执行 表达式三
第五部分,再执行表达式二

注意,表达式一,只被执行一次
表达式一:初始化条件 $i = 0;
表达式二:条件表达式,成立则执行循环体
表达式三:是一个自增条件 $i++,

三部分都能提出来,可是for()中的两个分号不能省略


九九乘法表四种打印方法

for($i=1;$i<=9;$i++){
for($j = 1 ;$j<=$i;$j++){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";
for($i=1;$i<=9;$i++){
for($j = $i ;$j>=1;$j--){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";

for($i=9;$i>=1;$i--){
for($j = 1 ;$j<=$i;$j++){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}
echo "<br>";
for($i=9;$i>=1;$i--){
for($j = $i ;$j>=1;$j--){
echo "$j X $i = ".($i*$j)."&nbsp;&nbsp;";
}
echo "<br>";
}

 


十一、特殊流程控制语句

1)break (break后面加数字能够退出多层循环)
跳出循环 break是一个指令,break1是退出一层循环,break2 是退出两层循环 break3是退出三层循环


2)continue

中断本次循环,继续下一次循环

3)exit

当前的脚本中只要执行到exit语句,而无论它在哪一个结构中都会直接退出当前脚本。exit是一个函数
,能够带参数输出一条消息,并退出当前脚本。它的别名是die()

while($i < 100){
if($i %3 == 0){

continue;
echo "{$i}aaaaaaaaaaaaaaaaaaaaaaaaa<br>}";
}
$i++;
}

这是一个死循环

十二、流程控制语句goto

跳转
echo "11111111111<br>";
goto nh; (跳转到标记处)
echo "2222222222222<br>";
echo "333333333333333<br>";
nh: (标记)
echo "44444444444444444<br>";

循环

$x = false;
$i=0;
xx:

echo "{$i}11111<br>";

if($i >5)
goto nz;

$i++;

goto xx;

goto的得与失

goto 语句常常带来错误或隐患。它可能跳过了某些对象的构造、变量的初始化、重要的计算等语句。

 

1三、PHP函数

函数:是一段完成指定任务的已命名代码块。函数能够遵守给它的一组值或参数完成特定的任务,而且可能返回
一个值。在PHP中有两种函数:自定义函数与系统函数。

函数的优越性:

控制程序设计的复杂性
提升软件的可靠性
提升软件的开发效率
提升软件的可维护性
提升程序的重用性

让表格隔行换色代码
echo '<table border="1" width="800" align="center">';
echo '<caption><h1>表格</h1></caption>';
for($i = 0;$i<10;$i++){
$bg = ($i%2==0)?'#cccccc':"";
echo '<tr bgcolor="'.$bg.'">';
for($j=0;$j<10;$j++){
echo '<td>'.$i.'</td>';
}
echo "</tr>";
}
echo '</table>';


函数的定义和应用、函数的语法格式

自定义函数的返回值

输出错误

error_reporting(0);
error_reporting(E_All);

file_put_contents("demo.html",table("成绩表",50,5,3,'green',10,400,'right')); 新建demo.html文件,将调用的函数生成的html放入
demo.html文件中

函数遇到return ,函数return下面的代码都不会执行了

return除了能够终止函数,还能够返回值

1)函数名定义时必需要有意义,建议驼峰式命名
2)重复的函数名不能声明 ,不能跟自定义的函数重名,也不能够和系统函数重名

自定义函数语法格式:

function 函数名称 (参数1,参数2,参数3){

程序内容叙述(函数体);
return 返回值 //如需函数有返回值时使用
}
函数的使用:

函数名称([参数1,参数2,参数3。。。。])
了解一个函数: 1)了解函数功能
2)了解参数
3)了解返回值

function_exists()判断函数是否存在


3)PHP局部变量

PHP变量的范围


function demo(){
$age = 30;
echo "你吃饭了没<br>";
}
echo demo();

函数调用了才执行
函数内部声明的变量,只有调用时才执行,调用结束后,函数中声明的变量会被释放
函数内部声明的变量,只能在函数内部调用,这就是——————局部变量

函数的参数,就是一个局部变量,声明成形参的,能够在调用时,给值,传值

4)PHP全局变量

全局变量:在函数外部声明的变量,能够在每一个函数中使用。(顺序)

在函数中局部变量会覆盖全局变量的能见度,所以在函数中没法直接调用使用全局变量

函数中若要使用全局变量时,必需要利用global 关键字定义目标变量,以告诉函数主体

此变量为全局。

在函数内部若是须要使用函数外部的变量,须要使用global关键字,将外部变量引入

只要将全局变量声明在调用以前,在调函数时就能找到

在外面声明的变量也好常量也好,若是没有unset()释放,都是脚本结束的时候释放。

而函数内部的局部变量,在函数调用结束时就会释放

九个全局数组:$_POST['a']=100; $_GET['b']=300;

全局数组中的变量,默认都是全局的,不须要用global去引入了


5)PHP静态变量


内存: 栈内存、初始化静态段

局部变量、全局变量声明后在栈内存中

static $c 这样的变量存在初始化静态段中

静态变量:

一、在函数中声明的静态变量只在第一次调用时声明
二、第二次之后,一看是静态变量,就先到静态区中,看一下有没有这个变量,若是有就使用,
而不去再声明

三、静态变量,在同一个函数屡次调用中共享

静态变量通常都是在函数内部声明

6)
function demo(){
static $a=0;
$a++;
echo $a."<br>";
}
function test(){
static $a=0;
$a++;

}
demo();
demo();
test();
test();
test();
test();
demo();
demo();

输出结果为 一、二、三、四、5

7)PHP常规参数的函数

函数三要素: 一、函数的功能描述
二、函数的参数
三、函数的返回值

常规参数的函数格式说明:所谓常规参数的函数,就是实参和形参应该个数相等、类型一致

伪类型参数
number add(number $a ,number $b)

mixed funName(mixed $a)

8)引用参数的函数

引用变量的特色:$a = 10; $b = &$a; $a = 400; $b = 800;
一、只有在内存中的变量才有地址。
二、有引用关系的两个变量,一个变,另外一个就变,至关于两个是一个

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

注意:若是在函数的形参中使用"&"修饰参数,在调用该函数时必须传入一个变量给
这个参数,而不是传递一个值。

9)PHP默认参数的函数

function demo($name = "shf",$age = "two",$sex = 'three',$email = "four"){
echo "{$name}=={$age}==={$sex}===={$email}";
}
demo("妹子");


默认参数([]中的)的函数格式说明:
在php中,支持函数的默认方式调用。若是在调用函数时没有指定参数的值,在函数中会
使用参数的默认值。

注意:默认参数必须列在全部没有默认值参数的后面


10)PHP可变个数参数的函数

func_get_args();//返回一个数组,包含全部参数
func_num_args() //返回参数总数
func_get_arg() //接收一个数字参数,返回指定参数

function demo(){
$arr=func_get_args();
$sum = 0;
for($i=0;$i<count($arr);$i++){
$sum +=$arr[$i];
}
return $sum;

}

echo demo(1,2,3,4,5,6,7,8,9);


下面代码效果同上


function demo(){
$arr=func_get_args();
$sum = 0;
for($i=0;$i<func_num_args();$i++){
$sum +=func_get_arg($i);
}
return $sum;

}

echo demo(1,2,3,4,5,6,7,8,9);

11)变量函数

若是将一个函数名称(字符串)给一个变量(字符串),而后在这个变量后面加上括号
,就会调用这个变量值对应的函数

function add($a,$b){
return $a+$b;
}
$var = "add";
echo $var."<br>";
echo $var(10,20);

12)回调函数

在使用一个函数的时候,若是传一个变量不能解决多大的问题。就须要传一个过程进入
到函数中,改变函数的执行行为。

在函数的调用时,在参数中传的部署一个变量或一个值,而是一个函数。这就是回调函数
参数。

$arr = array("aaa","a","aaaaaa","sdfghjkl","xcvbnm","xc","kjhgfdsa");
function mycom($a,$b){

if(strlen($a)>strlen($b)){
return -1;
}else if(strlen($a)<strlen($b)){
return 1;
}else{
return 0;
}
}
print_r($arr);
usort($arr,"mycom");
echo "<br>";
print_r($arr);

function fun($one="1",$two="2",$three="3"){
echo "$one===========$two==========$three<br>";
}
fun();

参数个数若是是变长的时,就不能直接调用这个函数

要借助于 call_user_func_array("fun",array(111));
if(count($_GET==1)){}

fun()

相关文章
相关标签/搜索