PHP基础知识
- PHP 代表 PHP: Hypertext Preprocessor
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
- PHP 文件的默认文件扩展名是 ".php"
PHP能做什么
- PHP 可以生成动态页面内容
- PHP 可以创建、打开、读取、写入、关闭服务器上的文件
- PHP 可以收集表单数据
- PHP 可以发送和接收 cookies
- PHP 可以添加、删除、修改您的数据库中的数据
- PHP 可以限制用户访问您的网站上的一些页面
- PHP 可以加密数据
安装
如果您的服务器不支持 PHP,您必须:
- 安装 Web 服务器
- 安装 PHP
- 安装数据库,比如 MySQL
官方 PHP 网站(PHP.net)有 PHP 的安装说明: http://php.net/manual/en/install.php
集成开发环境推荐 WAMP:http://www.wampserver.com/
PHP基本语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:
<!DOCTYPE html> <html> <body> <h1>我的第一个 PHP 页面</h1> <?php echo "Hello World!"; // 这是一行注释 /* 这是 多行 注释 */ ?> </body> </html>
PHP 中的每个代码行都必须以分号结束
两种在浏览器输出文本的基础指令:echo 和 print。
PHP变量
变量以 $ 符号开始,后面跟着变量的名称
PHP 没有声明变量的命令。
变量在您第一次赋值给它的时候被创建:
PHP 是一门弱类型语言
PHP 会根据变量的值,自动把变量转换为正确的数据类型。
在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。
PHP的基本语法
PHP(Hypertext Preprocessor,超文本预处理器)是一种运行在服务器端的脚本语言。
1.PHP语言标记
<?php 标准风格标记,属于XML风格;?> <script lanauage="php">长风格标记</script> <? 短风格的标记 ?> <% ASP风格的标记 %>
2.PHP指令分割符
PHP需要在每个语句(指令)后用分号结束!
3.程序注释
// 单行注释 # 单行注释 /* 多行注释 */ /**多行文档注释 */
4.变量
简言之,变量是用于临时存储值的容器。(变量在任何语言中都处于核心地位)
变量的命名:
PHP中声明变量必须是使用一个美元符号"$"加上后面的变量名来表示,使用赋值操作符(=)来给一个 变量赋值。
变量的命名:
一个有效的变量名是由字母或下划线开头,后面跟上任意数量的字母、数字或者下划线。要注意的是,变量名一定不能以数字开头,并且中间不可以使用空格,不能使用点分开 等!
按照正常的正则表达式,他将被表示成:‘[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*‘。
可变变量:
$str = ‘hello‘; $$str = ‘world‘; echo "$str $hello"; //输出hello world echo "$str $$str"; //输出hello world
变量的引用赋值:
简单的使用"&"加到将要赋值的变量前。这意味着新的变量简单的引用了原始变量。(换言之,“成为其别名”或者“指向”)。 $foo = ‘Bob‘; $bar = &$foo; $bar = ‘世界,你好!‘; echo $bar; //输出世界,你好! echo $foo; //输出世界,你好! $foo = ‘hello world‘; echo $foo; //输出hello world echo $bar; //输出hello world
变量的类型:
|-----boole布尔型
|-----integer整形
|-----四种标量类型---- |-----float浮点型,也称double
| |-----string字符串
|
数据类型--|
| |-----array数组
|-----两种复合类型---- |
| |-----object对象
| |-----resource资源
|-----两种特殊类型---- |
|-----NULL
布尔型(TRUE or FALSE): 布尔值FALSE 整型值0为假,其他非零值不论正负均为TRUE 浮点型0.0 空白字符串和字符串‘0‘ 没有成员变量的数组 没有单元的对象(仅适用于PHP4) 特殊类型NULL 整型:如果给定数超出整型范围,将会被解释成float。 浮点型:范围在1.7E-38~1.7E+38之间,精确到小数点15位。 字符串:可以使用单引号、双引号和定界符三种方法定义! 数组:可以存放多个数据,并且可以存入任何类型的数据。 对象:由属性和方法构成。属性表示对象状态,方法表示对象功能! 资源类型:保存在外部资源的一个引用,通过专门的函数进行建立和使用! NULL类型:NULL不表示空格,不表示零,也不表示空字符串,而是表示一个变量的值为空。 将变量直接赋值为NULL; 声明的变量未被赋值 被unset()函数销毁的变量
伪类型:
mixed:说明一个参数可以接受多种不同的(但并不必须是所有的)类型。 number:说明一个参数可以是integer后者float。 callback:接受用户自定义的函数作为参数。
数据类型相互转换:
自动类型转换 布尔型TRUE将转化为1,FALSE转化为0。 NULL转化为0。 整型和浮点型进行运算,先将整型自动转化为浮点型,再进行运算 字符串和数字型参与预算,字符串先转化为数字,再进行运算。 强制类型转换 (int),(integer):转换成整型 (bool),(boolean):转换成布尔型 (float),(double),(real):转换成浮点型 (string):转换成字符串 (array):转换成数组 (object):转换成对象 或使用具体的转换函数:intval(),floatval()和strval()。 注:整型转换为浮点型,由于其精度范围小于浮点型,所以转换后精度不会改变,但是浮点型 转换为整型时,会自动舍弃其小数部分。
检测变量类型:
is_bool():是否为布尔型 is_int(),is_integer(),is_long():是否为整型 is_float(),is_double(),is_real():是否为浮点型 is_string():是否为字符串 is_array():是否为数组 is_object():是否为对象 is_resource():是否为资源类型 is_null():是否为空 is_scalar():是否是标量,也就是是否为整数、浮点数、布尔型或字符串。 is_numeric():是否是任何类型的数字或数字字符串 is_callable():判断是否是有效的函数名
常量:用于一些固定的值!
常量的声明:通过使用define()函数声明常量,常量名照样区分大小写,按照惯例,一般常量名全大写,常量名前不要加"$"。 example:define(‘NAME‘,‘xiaozhang‘); echo NAME; //输出xiaozhang
常量和变量的区别:
常量前没有"$"符号
常量只能通过define()函数定义,不能通过赋值
常量可以不用理会变量范围的规则而在任何地方定义和访问
常量一旦定义就不能被重新定义或者取消定义,直到脚本运行结束自动释放
常量的值只能是标量类型
PHP中常用魔术常量:
__FILE__:当前的文件名 __LINE__:当前的行数 __FUNCTION__:当前的函数名 __CLASS__:当前的类名 __METHOD__:当前对象的方法名
运算符
算数运算符: + 加 - 减 * 乘 / 除 % 取余(求模) ++ 累加 -- 累减 注:$a++先计算表达式然后再执行递增的操作,++$a先执行递增操作,再计算表达式的值。累减同理!
赋值运算符:
= 将一个值或表达式计算结果赋给变量 += 将变量与所赋值相加后的结果再赋给该变量 -= ...... *= ...... /= ...... %= ...... .= 将变量与所赋值相连后的结果再赋给该变量
比较运算符:
> 大于 < 小于 >= 大于等于 <= 小于等于 == 等于 === 全等于 <>或!= 不等 !== 不全等 注:==和===的区别在于==只关心参与比较的数的值是否相等,而不管类型是否相同!
逻辑运算符:
and或&& 逻辑与 两边必须都为TRUE才为TRUE or 或|| 逻辑或 两边只要一个为TRUE就为TRUE not或! 逻辑非 取反,若表达式为TRUE则结果为FALSE xor 逻辑异或 两边不同时为TRUE
表达式:PHP的基石,几乎所编写的任何代码都可以看做是一个表达式,通常是变量、常量和运算符的组 合等!
PHP流程控制结构
分支结构:
单一条件分支结构 双向条件分支结构 多向条件分支结构 巢状条件分支结构
if(表达式){ if(表达式){ if(表达式){ if(表达式){
... ... ... if(表达式){
} }else{ elseif(表达式){ ...
... ... }
} } elseif(表达式){
---------------- if(表达式){
switch(表达式){ ...
}else{
case 值1: ...
... }
break; }
case 值2:
...
break;
case 值3:
...
break;
default:
...
}
循环结构:
while语句: do...while语句: for语句:
while(表达式){ do{ for(初始化;条件表达式;增量){
... ... ...
} }while(表达式); }
特殊流程控制语句:
break:中断当前循环,即结束循环的执行
continue:只能使用在循环内部,功能是跳过该次循环,执行下一次循环
exit:不论在哪个结构中,直接退出当前脚本
PHP的函数应用
函数:是指一个被命名的,独立的代码段,它执行特定的任务,并可能给它的程序返回一个值!
函数的声明:
function 函数名([参数1,参数2...参数n]){ 函数体; return 返回值; }
函数的调用:函数名([参数1,参数2...参数n]);、
函数的参数:参数列表是由零个、一个或多个参数组成,定义函数时,其后面括号内的表达式称为形式参数(简称形参),被调用函数名后括号内的参数称为实际参数(简称实参)。
函数的返回值:
return语句可以向函数调用者返回函数体中任意确定的值;
将程序控制权返回到调用者的作用域,即退出函数。在函数中如果执行了return语句,则它后面的语句将不会再执行!
PHP变量的范围:
局部变量:也称为内部变量,是在函数内部声明的变量,其作用域仅限于函数内部。不仅函数内部声明的变量是局部变量,为声明函数设置的参数因为只能在本函数内部使用,所以也是局部变量。区别在于,参数从函数外部获得值,而函数中声明的变量只能在函数内部被赋值。
全局变量:也成为外部变量,是在函数外部定义的,它的作用域从定义开始,到本程序结束。函数内部无法直接调用全局变量,若要使用全局变量,必须使用global关键字定义目标变量或者使用$GLOBALS数组(键名对应变量名,值对应变量的内容)。
静态变量:通过static声明静态变量,即函数执行完毕后,其静态变量依然保存在内存中!
PHP函数的各种应用:
常规参数函数:string funName(string name, int age);
伪类型参数的函数:mixed funName(mixed $args); //使用mixed描述的参数
number funName(number $args); //使用number描述的参数
引用参数的函数:void funName(array &$arr); //使用&描述的参数
注:如果函数的形参中使用‘&‘修饰参数,则在调用该函数时就必须传入一个变量,而不能传递一个 值。默认参数的函数:mixed funName(String name [,string value[,int age]]);//使用[]描述的参数可变个数参数的函数:mixed funName(String arg[,String ...]);//使用...描述的参数
回调函数:mixed funName(callback arg); //使用伪类型callback描述的参数
递归函数:即自己调用自己的函数,在函数体内部直接或间接的调用自己。