语言结构:PHP的关键词,语言语法的一部分,她不可以被用户定义或者添加到语言扩展或者库中,它可以有也可以没有变量和返回值。
PHP的标记:< ?php ? >
echo(); //输出变量,字符串
print(); //输出变量,字符串。有返回值
die(); //终止脚本执行
isset(); //检测变量是否定义过
unset(); //注销变量
include(); //引入或包含文件
require(); //引入或包含文件
array(); //数组
list(); //指定一组变量赋值
empty(); //检测变量是否为空
例:
<?php
$name=5;
$sex=6;
echo $name; //5
echo ' <br> ';
$se=print $sex; //6,返回值
echo ' <br> ';
echo $se; //1,之后解释
?>
echo $name; //输出”echo $name; “,没有被当成脚本输出,被当成文本输出
表达式:在PHP中,几乎所写的任何东西都是表达式,简单但却最精确的定义一个表达式的方式就是“任何有值的东西”。
结束符,注释:在每一条PHP代码行结尾处都会有一个分号 ;分号要半角状态下输入。
注意:注释语句需要写在标记(< ?php ? >)中
注释分类:
# 单行注释
// 单行注释
/**/ 多行注释
PHP常量
定义:变量的好处在于可随时根据数据的需求改变变量所代表的数据,而常量则是一开始定义并赋值后,在整个脚本执行周期中不允许改变的量,其他与变量基本一致
1.PHP常量命名规则
- 常量名通常用大写字母表示
- 常量名不需要使用"$"符号开始
- 常量名由字母,数字和下划线组成,其中不能以数字开头
- 复杂的常量名使用下划线法表示:FAMILY_NAME
2.常量定义:通常使用define函数或const关键字,而且必须在定义的时候就对其赋值
define和const的区别:访问的位置不一样
<? php
//有效常量名
//常量名 定义的值
define( ' PI ' , 3.1415926 );
define( ' SELF_PI ' , 3 );
const FAMILY_NAME = ' Green ';
define( ' -_- ' , ' Smile ' ); //宽松方式,不建议,这种只能用define定义
//错误常量名
define( ' 3PI ' , 3.14 );
const 3_PI=3;
?>
3.常量使用:常量一旦定义不能改变,只能在后面使用其初始化时给的数据,常量直接通过常量名访问
<? php
//访问常量
echo PI; //访问前面定义的常量
//特殊符号代表的常量不能用普通方式
echo -_-; //错误:系统不能识别
//所有的常量都可以使用contant函数
echo contant( ‘ -_- ’ ); //所有常量都可以采用这种方式访问
?>
4.系统常量:在系统中,有一些东西是程序员可能用到的,但是又不允许程序员改变,所以系统就定义了一些常量。
PHP_VERSION:PHP版本号
PHP_INT_SIZE:PHP中int数据所占用的内存字节数
PHP_INT_MAX:PHP中int数据所能表示的最大值
5.魔术变量:系统中有一些东西是在变化的,但是又是不允许随意变化,是有规律变化的,这个时候为了保证系统的健壮性,就尽量不让用户来进行控制,魔术常量就是其值会随着实际环境的变化而变化,而这种变化是程序员不能控制的。
- 魔术常量使用双下划线开始,也使用双下划线结束
- _DIR_:当前文件所在路径(绝对路径)
- _FILE_:当前文件所在路径(绝对路径,包含文件名)
- _FUNCTION_:函数内部使用,表示函数的名字
- _CLASS_:类内部使用,表示类名
- _NAMESPACE_:命名空间内部使用,表示当前所属命名空间
- _METHOD_:类内部方法里使用,表示当前方法名字(所属类)
- _LINE_:当前所在行数
<?php
echo _DIR_; //获取当前PHP脚本所在路径
echo _FILE_; //获取当前PHP脚本所在路径(包含文件名)
echo _LINE_; //获取当前行号
echo _LINE_; //获取当前行号,比上一行大1
?>
总结:常量就是一开始就固定数据,通常这些数据是不允许其他代码去改变的,能够保证数据的原始状态和真实性。常量的定义通常是程序员为了方便程序数据的使用而定义的
PHP数据类型(三大类八小类) PHP数据分类
基本数据类型(标量数据类型)
整型( int / integer ):存储整数数据
浮点型( float ):存储小数数据和超过整形范围的整数数据
布尔型( bool / boolean ):存储布尔类型数据,只有true和false两个值
字符串型( string ):存储字符串数据(最常见)
复合数据类型
数组型( array ):存储数组数据(即多个数据存放到一个变量中)
对象型( object ):存放对象数据,由类实例化得到(面向对象)
特殊数据类型
资源型( resource ):存储外部资源数据(数据库资源 / 文件资源)
空型( null ):变量没有存储任何数据
总结:PHP是一种弱类型的编程语言,因此PHP中的变量本身没有数据类型,可指定存放任何数据,随便放
强类型:变量本身就带有数据类型,只能存放特定的数据
数值型数据类型:
整型:采用8个字节存储数据,根据数据需求,PHP提供了多种进制的整数存储方式
<?php
//常见整型
$num1=123;
$num2=-50;
//八进制oct存储:逢8进1,使用0前缀,最大数值不超过7
$num3=0x123;
var_dump( $num3 ); //int(83):系统会自动按照十进制输出(用户通常不使用8进制)
//十六进制hex存储:逢16进1,使用0x前缀,从10开始使用a代替,依次到15使用f
$num4=0x123;
var_dump( $num3 ); //int(291):系统转换成10进制输出
//二进制bin存储:逢2进1,使用0b前缀( binary )
$num5=0b1101;
var_dump( $num5 ); //int(13)
?>
十进制dec
小数型:采用8个字节存储数据,浮点数也提供了多种小数存储方式
<?php
$f1=1.23;
$f2=1.23e3; //1.23 * 10 ^ 3
var_dump( $f1,$f2 ); //float( 1.23 ),float( 1230 )
?>
浮点数精度问题:数值型存储类型用来存储整数和浮点数,整数部分数据量相对较小,但很精确,浮点数部分不够精确,但范围很大
布尔数据类型(Boolean)
<? php
$b1 = True;
$b2 = False; //在PHP中不区分大小写
var_dump( $b1,$b2 ); //bool( true ) bool( false )
?>
字符串数据类型
在PHP中,凡是用户输入的数据,和程序员使用了引号(单引号和多引号)定义的数据,系统都理解为字符串
<? php
$s1 = ' 123 ' ; //虽然都是数字组成,但是有引号就是字符串
$s2 = " hello world " ;
var_dump( $s1,$s2 ) ; //string(3) "123" string(11) "hello world"
?>
单引号和双引号都可以定义字符串,但是彼此是有区别的:
- 单引号只能解析少量的转义符号:\' \
- 双引号能解析较多的转义符号:\$ \" \ \n \t
- 双引号中能够解析嵌套在字符串中的PHP变量(注意变量要与其他字符串分离,人工使用{} )
<?php
$s1=' abcdefg\' \n\t\" \$ ' ;
$s2=" abcdefg\' \n\t\" \$ " ;
var_dump( $s1 ) ; //string(16) "abcdefg' \n\t\"$",不见的斜杠代表被转义了
var_dump( $s2 ) ; //string(13) "abcdefg\' "$",不见的斜杠代表被转义了
$a=' 你好 ' ;
$b=' 世界 $a ! ' ;
$c=" 世界 $a ! " ;
echo $b ; //世界 $a !,系统不能解析$a,当成普通字符串解析
echo $c ; //世界 你好 !,系统解析了$c中的$a变量
$d=" $abc " ; //错误:系统提示没有定义变量$abc,系统区分不出来
$e=" { $a }bc " ; //正确,系统理解$a是一个独立的变量
?>
在PHP中,考虑到有些特殊情况下,字符串会很长,而且有格式存在,所以PHP针对单引号和双引号还做一层扩展:nowdoc结构( 单引号 )和heredoc结构( 双引号 )
nowdoc是类似单引号功能,heredoc是类似双引号功能
nowdoc和heredoc在内部的所有内容都属于字符串本身(不能写注释)
nowdoc和heredoc开始符号后不能有任何内容
nowdoc和heredoc结束符号必须顶格,且后面除了语句结束符不能有任何内容
<?php
$wish=' 世界和平 ';
//nowdoc
$=<<<' END '
我的愿望是:$wish
END;
echo $n; //我的愿望是:$wish
//heredoc:注意,符号END并不是规定的,可以自己取,但通常不建议改(怕关键字)
$h=<<<END
我的愿望是:$wish
END;
echo $h; //我的愿望是:世界和平
?>
4.字符串查看:通过下标访问
<?php
$str=' hello world ';
echo $str[0]; //h;第一个字母
echo $str[-1]; //d;倒数第一个字母,负数从后面开始,-1代表倒数第一个
?>