php入门学习杂记

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;
?>

如果在字符串中有双引号怎么办呢?
一共有三种方案,分别是

  1. 双引号中加单引号
  2. 单引号中加双引号
  3. 使用转义符\"表示

**当双引号中包含变量时,变量会与双引号中的内容连接在一起
当单引号中包含变量时,变量会当作字符串输出**

<?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的随机数

添加新评论