首页 > php技术 > php基础知识> 详细内容
PHP的基础知识简单介绍
日期:2019-01-02 
PHP是世界上最好的语言”,这句话大家都不陌生吧!可能又会引来口水仗,其实任何编程语言都有各自的优缺点,在不同的领域,不同的环境发挥着不同的作用。我不敢说PHP是世界上最好的语言,但是我敢说“我爱PHP”。我不是什么大牛大咖,就是一个熟悉PHP的一份子。本文适合有些PHP基础的人,属于概述性、总结性的,希望对大家有帮助!

PHP简介

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。已经二十多岁了,语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

PHP基础语法

一. 名称大小写敏感

变量名、常量名、数组索引(键名)这些都是大小写敏感的,必须名称保持一致。

函数名、方法名、类名、魔术常量,NULL,TRUE,FALSE,强制类型转换,这些都是大小写不敏感的

二. 变量,常量

命名:以“$”标记变量,不能以数字,空格,. 来开头,但可以有汉字,如 $变量=123;

可变变量: $a = 'aa'; $$a = 'bb'; 则 $aa = 'bb';

引用赋值: $a='123'; $b = &$a; 相当于$a和$b同指向内存的一个空间,改变$a的值,$b也跟着变化。类似于C语言&,不同的是unset($a), $b仍然存在。

变量类型:整形 int , 浮点 float, 字符串 string , 布尔 boolean, 数组 array, 对象 object, 资源 resource ,空 null 

全局变量:全局变量本身就是静态存储方式,所有的全局变量都是静态变量

$_SEESION , $_COOKIE, $_POST, $_GET, $_REQUEST, $_FILES, $_EVN, $GLOBALS

静态变量:static

1.静态全局变量在脚本任何地方皆可以使用(在方法体内时,要声明它是全局的)

2. 静态局部变量只在函数体内生效,相对安全。所以推荐用静态局部变量

静态全局变量,也是全局变量,与$_GET,$_POST,$_FILES等同级,存储位置相同(常量也是)

静态方法:静态方法不需要所在类被实例化就可以直接使用。 如 Math::MAX($a,$b); 未实例化Math类直接调用静态方法。

常量:define('常量名', '常量值',$flag=false); $flag 如果为true ,则不区分大小写,默认为false,区分大小写;

预定义常量: PHP_OS, PHP_VERSION,

E_ERROR=1 错误,导致脚本终止; E_WARNING=2 警告,脚本不终止; E_NOTICE=8 非关键性错误

魔术常量:魔术常量可以大写也可以小写,是不区分大小写的,全是返回物理路径,即使被包含输出,输出的也是源头代码的信息,非当前包含文件的信息,和$_SERVER 区分.

(1). __FILE__ 当前文件路径
(2). __DIR__ 当前文件目录
(3). __LINE__ 在文件文件的那一行 
(4). __FUNCTION__ 在当前文件的那个函数中 返回 函数名
(5). __CLASS__ 在当前文件中的那个类中 返回 类名

(6). __METHOD__ 在当前文件的类中的那个方法中 返回 类名::方法名

总结:

(全局)常量:(默认常量都是全局的)存储在(静态)数据段

变量: 全局变量(静态数据段),局部变量(存储在栈中),静态变量(不管全局/局部都存储在静态数据段)

三. 类型转换

1. 获取变量的类型 getType($a);

2. 设置变量的类型 setType($a ,'类型'); 类型包括boolean,integer,float,string,array,object,null

3. 强制类型转换,(同上类型)

$b = (int)$a; 转换为整形

4. 类型转换函数

intval(),转成整形; floatval();转成浮点型; strval();获取变量的字符串

5. 判断类型

is_bool/int/float/string/array/object/resource/null
is_numberic();'//判断是否为任何类型的数字或者数组字符串

is_callable();//判断是否为有效函数名称

四、运算符

算术运算符:加 +,减 -,乘 *, 除 /,取模 %, 自增 ++ ,自减 --

连接运算符 : ,如 $str = 'one' 'two'; 则 $str = 'onetwo';

赋值运算符: =, += , -=, *=, /=, %=, .= 

比较运算符: >, >=, <, <=,==, ===, !=, !===, <>

逻辑运算符:逻辑与 and ,&&; 逻辑或 or ,||; 取反 not,! ; 逻辑异或 xor(两边不同返回true,相同返回false)

位运算符: &(按位与), |(按位或) , ^(按位异或); ~(按位取反) ; <<(按位左移) ; >>(按位右移)

其他云算符:

?: 三目运算符, @ 忽略错误, => 数组下标, -> 调用对象的属性和方法

instanceof 类型运算符 , 反引号(··, 不是单引号)执行shell语句

五、流程控制

1. 判断语句

IF语句

if(条件) { 条件为真时,执行的语句} else {条件为假时,执行的语句}

三种形态:

if( 条件 ){ 真,语句 } else { 假, 语句}

if ( 条件 ){ 真, 语句}

if ( 条件 ){ 真, 语句} elseif( 条件 ){ 二条件为真,语句}.....else{ 假,语句};....表示可以多次elseif。

SWITCH语句

switch( 条件 ) {

case 1条件:

语句; break;

case 2条件:

语句; break;

....

default: (这个可以缺省)

默认语句;

}

2. 循环语句

WHILE语句: while(条件){ 条件为真,执行里面的语句; 条件为假,退出循环 }

DO...WHILE语句:do{ 第一次直接执行循环体,第二次开始,根据条件为真执行,为假退出循环} while(条件)

FOR语句:for( 初始值; 条件; 改变条件的语句) { 循环体中的语句}. 如 for($i=0; $i<8; $i++ ) { echo $i ;}

3. 退出循环体的语句

continue,break;exit 区别:

continue 跳过当前循环,循环还在继续

break 跳出当前循环,循环终止

exit; 终止当前脚本,这行代码后边的代码不执行了。