php基础

php的基本语法使用

1.区分大小写的情况

· 是指变量名区分大小写,其他基本都不区分

· 比如函数名不区分

· 比如系统中使用的关键字也不区分大小写,比如if, else, for

· 常量:可以自己设定是否区分,默认是区分的,也是推荐的做法。

2.语句结束符

· 一条语句使用一个分号结束

· 一段php代码区域中最后一个分号可省略

· php结束标记省略则不能省略最后一个分号

3.php注释

· 单行注释

o //常规风格(推荐)

o #配置文件风格

· 多行注释

o /* ....多行注释内容... */

多行注释技巧1:

/*

.... .....

//*/

多行注释技巧2:

if语句

4.变量

基本理解

变量是一个“标识符”,是一个“名字”,它用于存储并表示可以变化的数据;

对数据的使用和操作,只要通过变量就可以了!

每个变量中,就存储“一个数据”!

变量跟其所存储的数据之间的关系,称为“引用关系(指代关系)”,比如:

$i = 1; //则该语句的含义如下图所示

5.isset()判断:

用于判断一个变量“是否存在”——严格来说,是判断该变量中“是否有有效数据”;

返回的结果是布尔值:true(表示有),false(表示没有)

代码演示如下:

6.unset()销毁:

可以理解为:将变量和数据之间的原来的“引用关系”(指代关系)断开!!!

如下图所示:

7.变量的传值方式:

说明:

1,这里研究的是:将一个变量的值,传给另一个变量的内部机制(一对一情形)

2,只有2种:值传递,引用传递;

3,php中,默认都是值传递,引用传递必须使用引用符号:&

8.值传递:

将变量1的数据值,“复制”一份,然后将该复制出来的新的数据值,赋值给变量2:

形式为:

$v2 = $v1;

比如:

$v1 = 1;

$v2 = $v1;

理解:

9.引用传递:

将变量1的对数据的关系,“复制”一份,让变量2去使用该关系,其实相当于变量2也有一个指向之前变量1的数据的关系。

形式为:

$v2 = & $v1;

比如:

$v1 = 1;

$v2 = & $v1;

理解:

10.可变变量

是一个变量名本身又是一个变量的“情况”。

$name = “a”;

$a = 10;

echo $$name; //这就是可变变量,其实,它是指输出一个变量:$$name,其中变量名为”$name”,也就是“a”,即这里输出的就是变量 $a,也就是10

$b = 20;

$name = “b”;

echo $$name; //此时输出:20,其实是输出变量 $b

再举例:

$a = 10;

$b = “a”;

$c = “b”;

$d = $$$c + 4;; //14, 这里,$$$c就是“可变变量”

展开
收起

零基础怎么学习php?

PHP做于一种开源脚本需要,因为语法吸收的C语言、Java和Perl的特点是比较容易学习的。如果你有学过C语言或JAVA语言,会觉得上手很简单。

那么,如果你指的是编程零基础,只是一个会点电脑的小白,是不是意味着就不能学了呢?答案是否定的。

因为PHP在WEB领域应用最为广泛,所以如果你作为纯小白,在开始学习之前不妨先了解前端、后端、数据库、服务器这些概念。对这些概念有了初步了认识后便可以着手学习了。

HTML+CSS ,先学一点网页制作。最好再学一点javascript 。毕竟懂一点前端对后端开发来说是很有必要的。了解前端后便可以开始学习PHP了,语法,关键字,常量,数据类型等等。数据库,WEB服务器的学习。PHP的最佳搭档 是:Mysql(数据库),Apache(web服务器), 对于Apache,平时操作得比较少,懂得其配置即可。而Mysql则特别重要。初期懂得如何用PHP操作Mysql进行增删改查,了解常用的Mysql 优化原则,能使用PHP+Mysql写出简单的留言板页面。PHP深化。掌握Ajax异步传输,学习面向对象,学习MVC框架并掌握流行的PHP框架,如Yii框架,国内的ThinkPHP框架,形成良好的编码习惯。能快速用框架开发网站。大型网站的优化技术:如页面静态化,Memcached缓存技术,MySql数据库深度优化等。

等到你学会了一种编程语言,再去学另一种也是没什么问题的。编程语言只是工具,要写出最棒的代码靠的还是编程思想。

编程远没有想象中那么复杂,打好基础,不断发现编程的乐趣,你会发现另一个世界。

展开
收起

PHP定界符和语言基础

1.PHP定界符

2. PHP语言基础

文件的文件名必须是”.php”

PHP每个语句必须是“;”结束

3.PHP变量:

变量的概念

变量包括三部分:变量名,变量值,内存地址

4.实例:利用变量和输出语句连接数据库

展开
收起

PHP基础分页

PHP分页,对于经常写程序的人来说,这是必不可少的一部分,只要写页面几乎都要用到,用的多了也没什么感觉了,但对于初学者来说,这个使用基本原理还是有些复杂的,为了照顾新人,这里写出了基本使用方法,高手可以直接忽略。

HTML页面输出:

展开
收起

PHP基础学习注意点(一)

基础知识的扎实是进阶高层知识领域的底层建筑,无论学习哪门语言都是这个道理,小细节决定一切,PHP的学习也不例外。下面总结一些PHP基础学习中经常误解、曲解、易混淆的知识点(没有按照PHP进阶学习的顺序)。

1.PHP基础类型中的浮点型转化为整型的特例

echo intval((0.1+0.7)*10);有PHP基础的人可能都会认为上述语句的输出结果是8,但是事实上正确结果是7,这是因为0.1+0.7的结果表示其实是类似 7.9,PHP浮点数向其他数据类型转化时丢失精度是正常的事情。所以,亲们,注意咯

2.函数传递各种数据类型

PHP函数在传递各种数据类型时有默认的传递方式,比如,函数传递对象是默认传递的是对象的地址,而传递数组及其他基本数据类型时默认传递的是值。

3.条件判断语句的一个特例

if(0=='a'){echo "0=='a'为真";}else{echo "0=='a'为假";}粗心的人会认为输出结果是0==‘a’为假,但是正确结果是输出0==‘a’。这是因为‘a’与整型数据比较的时候会先转化为整型再进行比较,而intval('a')=0。

4.构造方法(__construct(),每个类都有默认的构造方法)没有返回值,构造方法的默认访问修饰符是public。

5.析构方法(__destruct()没有返回值,不接受参数,类没有默认的析构方法。)会自动调用,主要用于销毁资源,调用顺序是先创建的对象后被销毁(栈的先进后出原则)。在下列情况下析构方法会被调用:

当程序(进程结束)退出时当一个对象被视为垃圾对象时,所谓垃圾对象是指没有任何变量再引用它,一旦一个对象被视为垃圾对象,析构方法会立即被调用,如下列代码:$object1=new OB();$object1=null;$object2=new OB();$object3=new OB();上述代码中调用三个对象的顺序是先调用$object1的析构方法,然后调用$object3的析构方法,最后调用$object2的析构方法。注意下列代码的析构方法调用顺序:$object1=new OB();$object4=$object1;$object1=null;$object2=new OB();$object3=new OB();上述代码对象的析构方法调用顺序是先调用$object3的析构方法,然后调用$object2的析构方法,最后电泳$object1的析构方法。因为尽管$object1=null,但是有语句$object4=$object1,这意味着析构方法调用顺序将按照栈的后进先出原则。6.(1)静态(static)变量的访问方法

在类内:self::$类静态变量名 或 类名::$类静态变量名在类外:类名::$类静态变量名 (2)静态方法(不能访问非静态属性)的访问方法

在类内:self::静态类方法名 或 类名::静态类方法名在类外:类名::静态类方法名 或 对象名::静态类方法名(注意:如果该静态方法的访问修饰符不是public,则在类外不能使用 对象名::静态类方法名 访问静态方法) 注:静态方法只能访问静态属性/静态方法,不能访问非静态属性/非静态方法;静态属性可以被任何方法访问

7.常量(const)的访问方法

const关键字前不能有任何修饰符,包括不能有public在类内:self::常量名 或 类名::常量名在类外:类名::常量名 或 接口名::常量名8.使用抽象类:

一个类如果含有抽象方法,就必须声明为抽象类抽象类不能实例化,访问抽象类的已实现的public静态方法时在类外使用类名::静态方法名是可以的抽象类可以没有抽象方法,抽象类可以含有已实现的具体方法抽象方法必须放在抽象类中抽象方法不能有函数体如果一个类继承了某个抽象类(顺便提出,php是单继承的),则它必须实现该抽象类的所有抽象方法(除非它自己也声明为抽象类)9.使用接口(达到高内聚低耦合):

接口中的方法都不能有方法体(即在接口内不能含有已实现的 方法)接口中可以有属性,但必须是常量,而且是public的。在类外使用接口名::常量名访问常量当一个类实现了某个接口,则该类必须实现这个接口的所有方法,但是并不一定要求在类中使用接口中的常量接口不能实例化一个类可以实现多个接口接口中的方法默认是public的而且必须是public,不能是protected或是private一个接口不能继承其他的类,但是能多继承其他的接口10.final

final类不能被继承父类的final方法不能被子类修改final关键字不能修饰属性

展开
收起

10天学会php第四天php基础知识

前三天学习了静态页面的知识点的学习,今天开始介绍php的知识点,先从基础说起

一、php介绍

二、数据类型

三、变量

四、运算符

五、常量

六、输出

一、php介绍:

1 php HyperText preprocessor 超文本预处理程序。

2 php运行环境:lamp(运行环境) wamp(开发环境)

3 http://主机ip[:端口号]/文件路径

/app/wamp/www

phpinfo(); 环境信息

phpinfo()

4 php结构

html代码

标准定界符*******

php代码

<?php

php代码

?>

短标记定界符:

<?

php代码

?>

开启短标签的话,打开配置文件php.ini php配置文件 把属性修改一下short_open_tag = On

asp风格

<%

asp代码

%>

ps说明:php代码

1》严格区分大小写;

2》每行代码结束后,要以分号;结尾。

二、数据类型

1 数据类型:

主数据类型:

伪数据类型:

2 主数据类型:

标量数据类型:

复合数据类型:

特殊类型:

3 标量数据类型

字符串(string)

整形(integer)

浮点型(float/double)

布尔型(boolean)true false

4 字符串:

1》单引号

2》双引号

3》<<<flag

字符串

flag;

注意:<<<标志 结束标志必须在行首

重点强调 :html代码能写入字符串中,echo输出在页面能够成正常执行。

5 转义字符:

目的:控制《==》字符

符号 \

\$ 美元符号

\' ''

\" ""

\n 换行

\r 回车

\t 制表符

\\ \

6 布尔型(true/false)

true 1

false 0

7 复合数据类型:

数组(array) *******

一维数组

对象(object) *******

8 特殊类型

空值 null

资源 resource

9 空值

1> 明确赋值为NULL

2> 没有赋值的变量

3> unset(变量名称)销毁的变量

10 伪数据类型

mix 混合类型,参数可以是多种类型。

gettype(mix 参数)

number: 数值:整形和浮点型。

callback 函数

三、变量*********

1 声明变量:

$变量名称 = 值; //值:值可以包含上面所有类型的数据。demo

$str='freemoban';

2 变量命名规则:

$符号后边第一个必须是字母或下划线,第二位后可有字母 数字 下划线

变量名称不禁止与关键字同名。关键字:

变量名称最好有一定的含义。

习惯:把第二个词后的首字母都大写。(驼峰标记法)

$userName $userAge $userList $newsTitle

$user_name $user_age $news_title

3 预定义变量:

$_ENV 存储了环境变量信息。

http传递数据的两种方式 get post

$_GET 路径传值

$_POST 表单传值

$_FILES 接受文件上传的。 表单控件传值

$_SERVER 服务器资料

HTTP_HOST======>localhost:8888

SERVER_NAME======>localhost

SERVER_ADDR======>127.0.0.1

SERVER_PORT======>8888

REMOTE_ADDR======>127.0.0.1

DOCUMENT_ROOT======>D:/soft/www

PHP_SELF======>/db.php

使用:

$_SERVER[PHP_SELF]

$_SESSION : 存储在服务器端的变量。用来跟踪记录信息的。

四、运算符:

1 算数运算符: + - * / %(余数)

2 字符串运算符:.

3 比较运算符: > < >= <= ==(相等,比值) !=(不等) ===(值 类型) !==

4 逻辑运算符: 与 && 或|| 非! xor(异或)

流程判断

与 或

条件1 &&(||) 条件2

条件1 && 条件2 两边都是true

条件1 (||) 条件2 只要有一个true就可以

! !3 对立面。

5 错误抑制符号:

@ 不显示错误信息。

6 位运算符:(了解)

& | ~ >> <<

五 常量(不经常修改的变量 如数据库配置信息):

define("常量名称","常量的值");

常量使用

2 魔术常量:

__FILE__******** 返回文件的物理路径和文件名称

basename(__FILE__); 返回文件名称;

dirname(__FILE__); 路径。

__LINE__ 打出当前行号

__CLASS__ 返回当前类名

__METHOD__ 返回当前方法名称

__FUNCTION__ 返回当前函数名

今天介绍的知识点比较多,这个以后项目中用到的也比较常见.有兴趣的朋友可以都试试看看输出效果。上面只是简单的介绍,在实际需求中会接触更多的组合。不过都是由基础衍生的。快去敲代码吧。

展开
收起

PHP是世界上最好的语言(入门1)

请点击输入大家都图片描述

大家都知道PHP是世界上最好的语言,我写php代码有十年的工作经验了,现在给大家分享一下开发过程中的各种坑,为了照顾刚入门的同学,我就先从基础的地方开始分享。

1:PHP这门语言是做什么用的?

PHP 是服务器端脚本语言。主要是用来做网站建设的,目前市面上90%的网站都是用php来编写的,比如:以前的淘宝网,凤凰网。

2:PHP这么语言长什么样?

下面这个是最简单的php代码。php是双标记语言有一个开始标记<?php 和一个结束?>标记,中间就是php代码。

3:PHP运行环境。

一般PHP是在是Lnmp,Lamp,Wamp和Wnmp这四种环境下面运行,php想要运行起来必须先要搭建环境,最简单就是wamp环境,Linux 是服务器端的开源系统,相对于window很安全。

lnmp:L 是表示linux 操作系统,n表示nginx,m表示mysql,p是表示php。

lamp : L是表示linux 操作系统,a表示apache,m表示mysql,p是表示php。

wamp:w是表示window操作系统,a表示apache,m表示mysql,p是表示php。

wnmp:w是表示window操作系统,n表示nginx,m表示mysql,p是表示php。

mysql是数据库的意思,存放数据的地方,后面会和大家详细讲解。

4:PHP八种数据类型

1、boolean (布尔型):可以理解为 真 和 假。取值只有 true 或 false;true和false是PHP的内部关键字。

2、integer (整型):可以理解是整数,整型数据类型只能包含整数。可以用十进制、八进制、十六进制来表示。八进制的数字前必须加0,十六进制需要加0x。

3、float / double (浮点型):可以理解为小数,浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度比整数大得多。

4、string (字符串):字符串是连续的字符序列,由数字、字母和符号组成。

5、array (数组):数组是一组数据的集合,它把一系列数据组织起来,形成一个可操作的整体array('a'=>'aa','b'=>'bb','c'=>'cc')。

6、object (对象):编程语言所应用到的方法有两种:面向过程和面向对象。

7、resource (资源):在使用资源时,系统会自动启用垃圾回收机制,释放不再使用的资源,避免内存消耗殆尽。

8、null (空值):空值,表示没有为该变量设置任何值,空值(null)不区分大小写。

4:PHP用到的IDE也就是我们说的编辑器。

1:Zendstudio 2:PhpStorm 3:Eclipse 4:Dreamweaver都可以

展开
收起

PHP丨PHP基础知识之数据类型

PHP的数据类型主要有三大种:(细分的话8小种)

一、标量数据类型

标量数据类型包括以下几种:

(1)BOOLEAN:布尔型

布尔变量是PHP变量中最简单的;

它保存一个TRUE或者FALSE值;

其中TRUE或者FALSE是PHP的内部关键字;

设定一个布尔型的变量,只需将TRUE或者FALSE赋值给该变量;

程序的世界只有对错(世界上有01种人,一种是会点赞的人,一种是看了不点赞的人)

其他类型转换成布尔类型,var_dump((boolean)其他类型);

以下这些情况为FALSE,其他为TRUE

布尔值(值为false)、整型值(值为0零)、浮点型值(值为0.0)、字符串(空字符串和字符串“0”)、数组(没有诚意的数组)、特殊类型NULL

(2)STEING:字符串

字符串是连续的字符序列,字符串中的每个字符只占用一个字节。在PHP中,定义字符串有3种方式:

单引号方式,双引号方式,定界符方式。(字符串中有一些特殊的字符串例如:“\n” 代表着换行;“\r” 代表着回车)

(3)INTEGER:整数

整数数据类型只能包含整数。这些数据类型可以是正数或负数。在32位的操作系统中,有效的范围是 -2147483648~+2147483647。如果超出则变成 浮点数

(4)DOUBLE:浮点数(双精度或实数)(DOUBLE或FLOAT)

浮点数据类型可以用来存储数字,也可以保存小数。它提供的精度不整数大得多。在32位的操作系统中,有效的范围是1.7E-308~1.7E+308。

浮点数在计算中会出现精度消耗(因此不要用浮点数进行累加)比如:在计算金额的时候普遍会使用1代表0.01元

二、复合数据类型:

复合数据类型包括以下两种。

(1)ARRAY:数组(数组呢主要分为关联是数组和索引式数组)

可以是二维、三维或者多维,数组中的各元素可以是string、integer或double,也可以是array。

(2)OBJECT:对象类型

三、特殊数据类型:

特殊数据类型包括以下两种。

(1)RESOURCE:资源

资源是PHP内的几个函数所需要的特殊数据类型,由编程人员来分配。

(2)NULL:空值

空值是最简单的数据类型。表示没有为该变量设置任何值,另外,空值(NULL)不区分大小写。

在下列情况下一个变量被认为是NULL

1、被赋值为NULL值的变量;

2、尚未被赋值的变量;

3、被unset函数销毁的变量

对象和资源属于“引用类型”,其他都属于“值类型”

之前还接触过一种「伪类型」,但是目前还是没有了解到伪类型属不属于数值类型。

伪类型介绍

伪类型分为三小类:

1、(mixed)混合类型 :一个参数可以接受多种不同的类型;

2、(number)数值类型:一个参数可以是 integer或者float

3、(callback)回调类型:可以接受用户自定义的回调函数作为参数,回调函数不止可以时简单的函数还可以是对象方法还包括静态方法;

好了今天就分享到这里,拜拜我是你们的大朋友计算机爱好者大脸猫。

今日问题:【伪类型属不属于数据类型?】

今日推荐:

程序员日常小漫画

PHP丨PHP基础入门——函数「理论篇」

你以为的PHP程序员,实际上的PHP程序员!

展开
收起

程序员入门之PHP语法基础知识

PHP的语法结构:

1,标准风格,也叫XML格式,<?php ?>

//告诉浏览器以什么编码方式来解析什么类型的文档(可以解决乱码问题)

header("content-Type:text/html;charset=utf-8");写在任何输出之前

2,短风格,也叫asp_tags //<? 代码 ?>

3,ASP风格,<% 代码 %>

4,长风格,<script language=”php”>代码</script>

PHP文件内可以写HTML类型的代码,HTML内不能写PHP类型的代码

PHP内的注释:1,单行注释 // 或者 #

2, 多行注释 /* */

3, 添加缩进 tab 取消缩进 shift+tab

4, 删除当前行 ctrl+d 撤销 ctrl+z

变量:可以变化的量,变量的声明 以$符号开始,后面跟上变量的名称,

//不要起特殊符号,包含中文等

$a $bc $username

可以多个变量一起赋值 $e=$f=$g=200

echo “<br/>”换行

echo “a”,”b”,”username”; //输出一个或多个字符串

echo a,b,username;

echo ‘king’; //输出King

命名变量需要遵循驼峰标记法:

常量:定义常量 define(常量的名称,常量的值) //直接使用不用加$ echo INT;

魔术常量:_LINE_:说明文件中的当前行号 _FILE_:说明文件的完整路径,名字

_CLASS_:类的名称 _METHOD_:类的方法名称 _FUNCTION_:函数名称

eg:echo _LINE_ ; // 获取当前行号,使用与普通常量无区别

基本数据类型:

1)标量类型:只能含有单一信息包括(boolean,string,float,integer);

gettype($int)----得到$int这个变量的类型

声明一个浮点类型的变量 $float_1 =1.2;

声明一个浮点类型的变量 $true_1 =false;

字符串:字符串必须写在定界符之间。定界符有’’,””,<<<

单引号和双引号的区别:

双引号可以解析变量,单引号不行,单引号解析\’和\\,双引号可以解析全 部转义符。

换行符:PHP_EOL //echo “ABC”,PHP_EOL,“dfg”;

{ }的作用,PHP引擎在解析变量的时候会尽可能多的合法字符,它认为取得到的合法字符越多,这个变量的含义月明确,{username}是一个整体

$username =”www”; echo “{$username}123”; //www123

echo “${username}123”这样写也行。

$string = “asdasa”; echo $string{2};//取出string的第三个字符。

var_dump($int); //打印变量的详细信息,不用echo

echo “<h1>this is ss</h1>”; //this is ss 。 html语句会被Apache解析

echo语句会被php引擎解析掉返回给服务器后HTML语句会被服务器解析

>: &gt < :&lt ‘ :&#39 “ :&quot & :&amp 空格:&nbsp

$test=”asdfg”;

$string{3}=”f”; //将test中第四个字符换成f

$test{5}=”s”; //在末尾加s //asdfgs

HereDoc:在写大量文本的时候

<<< 名称

写的内容

名称; //在结束名称前不能有任何字符(包括空格也不能有)

<?php

$tb=”我是内容”;

$table=<<<psd

//下面的内容可以按HTML的格式来书写

<table border="1" width="700" bgcolor="#ABCDEF">

<tr>

<td>{$tb}</td> //可以将tb直接写入 eg:echo “{$username}123”;

<td>e</td>

<td>r</td>

</tr>

</table>

psd; //前面不能有任何字符

echo $table;

?>

2)复合类型:

数组(array):

$arr=array(1,2,3,4,5); echo gettype($arr)

对象(object):

$object=new stdClass(); echo gettype($object)

3)特殊类型:

资源(resource): $filename = “text.txt”;

$handle =fopne($filename,”r”);

展开
收起

PHP丨PHP基础知识之PHP基础入门——函数「理论篇」

前两天讲过PHP基础知识的判断条件和流程控制,今天来讲讲PHP基础知识之PHP基础入门--函数!

一、函数的声明与使用

1、函数名是标识符之一,只能有数字字母下划线,开头不能是数字。

函数名的命名,须符合"小驼峰法则":myNameIsXiaoxi my_name_is_xiaoxi

函数名不区分大小写。func() Func() FUNC() 都可以

函数名不能与已有的函数名重复,不能与系统函数名重复。

2、function_exists("func1");用于检测函数是否已声明;

注意:传入的函数名,必须是字符串格式:返回结果为true/false。

二、PHP中变量的作用域

1、局部变量:声明在函数内部的变量,称为局部变量。只在函数内部能用,函数外加需使用,需在函数中使用return关键字返回。

2、全局变量:声明的函数外部的变量,称为全局变量。

3、函数中,使用变量,默认使用内部局部变量。如果,需在函数中使用全局变量,需要使用global关键字,将全局变量引用函数,才能使用。

函数中的变量名,如果与全局变量重复,global语句之上,为函数局部变量;global语句之下,为系统全局变量。

4、 $GLOBALS[]全局数组:

$GLOBALS[]数组,是PHP给我们内置的全局数组,可以直接给数组添加值,无论在函数内外声明,均可在任何地方直接使用。

$GLOBALS["a"] = 10; ---> echo $GLOBALS["a"];//任何位置直接使用

5、函数中使用全局变量,还有一种方式:通过给函数传参,可以在函数内部使用全局变量;

但是,传递以后的参数是函数的局部变量,内部改变,外部不会变。

除非,传递的参数是地址function func($a1,&$a2){} //函数内部修改a1,则全局a1不会变,函数内部修改a2,则全局a2会变。

如果函数的形参,出现了取址符号,则,调用函数时,实参必须是变量,而不能是字面量。

6、使用require与include包含不会影响作用域。

三、静态变量

1、静态变量,使用static关键字声明。static $num = 10;

2、静态变量的特点:

>>>静态变量在函数第一次加载的时候进行声明。

>>>函数使用完不会立即释放静态变量,静态变量在整个脚本执行过程中,只会声明一次。

>>>同一函数,多次调用,共享同一个静态变量。

四、函数的参数传递

1、在PHP中,涉及参数传递时:实参列表只能比形参多,

2、常规参数传递:function func($a){} func($a);

3、引用参数传递:function func(&$a){} func($a);

①通过&引用参数传递,函数内修改变量,函数外同步变化

②形参为引用参数,实参只能是变量,不能是字面量 func(10); ×

4、默认参数:function func($b,$a=10){} func(20);

//是$可以不传,默认为10;$b必须传递,否则使用时未定义报错。

如果参数中既有默认参数,也有非默认参数,那么默认参数列表

必须要在非默认参数列表后面,即调用的时候必须保证非默认列表的优先赋值。

5、可变参数列表:由于PHP实参可以比形参多,那么我们可以传递N个实参,并通过PHP内置函数取到对应参数。

var_dump(func_get_args());//取所有参数列表(数组)

var_dump(func_num_args());//返回参数的总个数相当于count(func_get_args());

var_dump(func_get_arg(0));//根据下标,返回每个参数

五、变量函数

1、将一个函数名,转为字符串后,赋给一个变量。这个变量,就是我们所说的变量函数,可以加()调用函数内容。

function func(){}--->$fun = "func";--->$func();

六、回调函数

1、使用变量函数,自定义回调函数

function func($func){$func();}--->function f(){}--->func("f");

2、使用call_user_func_array和call_user_func自定义回调函数;

两个函数的第一个参数,均为回调函数,表示执行当前回调。

不同点在于:call_user_func_array()第二个参数为数组,并将数组的每一个值赋给回调函数的参数列表,相当于JS中的apply();

而call_user_func,是将回调函数的参数列表,直接展开写到第2~多个参数中,相当于JS中的call();

eg:call_user_func_array("func",array(1,2,3));

--> func(1,2,3);

call_user_func("func",1,2,3); --> func(1,2,3);

七、匿名函数

由于变量函数,在调用时存在多种调用方(func()/$func();)

所以为了让函数的调用更为同一,才产生了匿名函数!!!

声明匿名函数,函数体后面的分号必不可少!

匿名函数本身也是变量,用var_dump();检测为Object类型

八、PHP闭包

在PHP中,子函数无法直接访问父函数的局部变量,必须使用User关键词向下传递!!!

文章收集与网络,辛苦收集转载请备注出处一只大脸猫博客!

PHP丨PHP基础知识之流程控制WHILE循环「理论篇」

PHP丨PHP基础知识之条件语IF判断「理论篇」

PHP丨PHP基础知识之条件语SWITCH判断「理论篇」

展开
收起