PHP变量命名规则
php申明变量时必须在变量前写符号$
,比如$var="我是变量"
php变量命名必须以字母或者下划线_
开头,变量的命名只能由字母数字下划线组成,当然也可以加入中文,单词之间的间隔可以用下划线隔开或者使用驼峰命名法,php变量是区分大小写的
PHP变量数据类型
在PHP中,变量支持8种原始类型,四种标量类型、两种复合类型、两种特殊类型,PHP是一门松散类型的语言,申明数据变量的时候,无需像java一样申明数据类型,数据转换也那没么麻烦,直接进行赋值即可
标量类型-布尔
布尔类型就相当于java的Boolean变量类型,值分为true和false,他们不区分大小写,
echo布尔变量时,如果值为true则输出1,反之什么都不输出。
标量类型-整型
就是整数拉,输入值的时候可以输入十进制的值也可以输入8进制或16进制
输入8进制需要在数字前面加0,例如:$var_int=0123;
输入16进制需要在数字前面加0x,例如:$var_int=0x123;
注意是加零,不是字母O
标量类型-浮点
浮点类型可以输入科学计算法e,不区分大小写,例如:$num_float=12.3e5;
、$num_float=12.3E-5;
e5表示10的5次方,e-5表示10的负5次方
标量类型-字符串
字符串可以用双引号形式,也可以用单引号形式,还有Heredoc结构形式
<?php
$str_string1 = '我是字符串';
$str_string2 = "我也是字符串哦";
echo $str_string1;
echo "<br />";
echo $str_string2;
?>
如果在字符串中有双引号怎么办呢?
一共有三种方案,分别是
- 双引号中加单引号
- 单引号中加双引号
- 使用转义符\"表示
**当双引号中包含变量时,变量会与双引号中的内容连接在一起
当单引号中包含变量时,变量会当作字符串输出**
<?php
$love = "I love you!";
$string1 = "慕课网,$love";
$string2 = '慕课网,$love';
echo $string1;
echo "<br />";
echo $string2;
?>
输出结果是:
慕课网,I love you!
慕课网,$love
特殊类型-资源
这个资源我感觉有点类似与java的对象,php的资源是由专门的函数建立和使用的,比如建立一个文件资源,图形画布,数据库,举个梨子:
<?php
$file=fopen("f.txt","r"); //打开文件
$con=mysql_connect("localhost","root","root"); //连接数据库
$img=imagecreate(100,100);//图形画布
?>
举个遍历TXT的梨子:
<?php
//首先采用“fopen”函数打开文件,得到返回值的就是资源类型。
$file_handle = fopen("/data/webroot/resource/php/f.txt","r");
if ($file_handle){
//接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
while (!feof($file_handle)) { //判断是否到最后一行
$line = fgets($file_handle); //读取一行文本
echo $line; //输出一行文本
echo "<br />"; //换行
}
}
fclose($file_handle);//关闭文件
?>
特殊类型-NULL空类型
当变量被赋值为null或者未被赋值或者被unset()了,都会被识别为null,php对null的大小写不敏感。
常量
常量的命名规则跟JAVA一样,全大写。申明方式是通过函数define();它的语法格式是bool define(string $constant_name, mixed $value[, $case_sensitive = true])
第一个参数是常量名,第二个参数是值,第三个值表示是否对大小写敏感,一般不写,默认敏感。举个梨子:define("PI",3.14);
系统常量
__FILE__
php文件在服务器的位置__LINE__
当前代码在第几行PHP_VERSION
当前解析器的版本号PHP_OS
执行当前PHP的服务器的名称
运算符
赋值运算符
不同于java,如果要赋值内存的引用,需要使用=&,也就是使变量a和b共用一块内存,a的值变了,b跟着变
比较运算符
三元运算符
?:
三元运算符也是一种比较运算符
(exprt1)?(exprt2):(exprt3);
如果exprt1的值为true则此表达式的值为exprt2,为false则为exprt3,举个梨子
$a = 61;
$b = $a >= 60 ? "及格":"不及格";
echo $b;
输出结果为 及格
逻辑运算符
and or xor 的优先级没有三元运算符的高,需要用括号括起来
连接运算符
.
返回将左边的参数与右边的参数连接起来的值.=
将右边的参数附加到左边的参数后
for循环遍历
php有跟java一样的需要初始化变量的for循环,但是遍历数组却跟java不一样,php使用的是关键字foreach($数组 as $值){//执行语句}
这是一种不获取下标的方式,还有一种获取下标的方式,foreach($数组 as $下标 => $值){//执行语句},举个梨子:
<?php
$students = array(
'2010'=>'令狐冲',
'2011'=>'林平之',
'2012'=>'曲洋',
'2013'=>'任盈盈',
'2014'=>'向问天',
'2015'=>'任我行',
'2016'=>'冲虚',
'2017'=>'方正',
'2018'=>'岳不群',
'2019'=>'宁中则',
);//10个学生的学号和姓名,用数组存储
//使用循环结构遍历数组,获取学号和姓名
foreach($students as $key => $v)
{
echo $key.":".$v;//输出(打印)学号:姓名
echo "<br />";
}
?>
打印结果:
2010:令狐冲
2011:林平之
2012:曲洋
2013:任盈盈
2014:向问天
2015:任我行
2016:冲虚
2017:方正
2018:岳不群
2019:宁中则
<br/><br/><br/><br/>
常用函数
memory_get_usage()
获取当前PHP文件消耗的内存var_dump()
函数获取数据类型,参数就是变量mysql_connect("localhost","root","root");
连接数据库fopen("f.txt","r");
打开文件fgets();
读取文本feof();
判断是否到最后一行fclose();
关闭文件unset();
释放变量defined();
判断变量或者常量是否被定义,返回bool,也就是布尔,如果被定义的常量再次定义就会报错date('m-d',time());
获取当前时间rand(1,50);
获取一个1到50的随机数