PHP基础 第一天

语言结构: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代表倒数第一个

?>

 

posted @ 2018-08-15 14:03  糖分控  阅读(114)  评论(0编辑  收藏  举报