PHP笔记1--代码标记、注释、变量、常量、数据类型

php 代码标记

1、asp 标记 <% echo ‘hello world2’; %> 需要在配置文件http.conf中开启 asp_tags = Off
2、短标记 <? echo 'hello world2'; ?> 需要在配置文件http.conf中开启 short_open_tag = Off
3、脚本标记
4、标准标记 <?php echo 'hello world' ?> 用的最多

注释及分隔符

单行注释 
//注释
# 注释
多行注释
/*
多行注释
多行注释

php 分隔符
代码以行为单位 英文分号“;” 标识一行的结束,最后一行可以不加分号

变量

1、变量定义
PHP中的所有变量都必须使用“$”符号
命名规则:由字母、数字、下划线构成但是不能以数字开头. 本身允许中文变量但是不建议使用

$var1 =1;
 $var2 =$var1;
 echo 'var1='.$var1.';var2='.$var2;

预定义变量:
$_GET:获取所有表单以get方式提交的数据
$_POST:POST提交的数据都会保存在此
$_REQUEST:GET和POST提交的都会保存
$GLOBALS:PHP中所有的全局变量
$_SERVER:服务器信息
$_SESSION:session会话数据
$_COOKIE:cookie会话数据
$_ENV:环境信息
F I L E S : 用 户 上 传 的 文 件 信 息 2 、 可 变 变 量 如 果 一 个 变 量 保 存 的 值 刚 好 是 另 外 一 个 变 量 的 名 字 , 那 么 可 以 直 接 通 过 访 问 一 个 变 量 得 到 另 外 一 个 变 量 的 值 : 在 变 量 前 面 再 多 加 一 个 _FILES:用户上传的文件信息 2、可变变量 如果一个变量保存的值刚好是另外一个变量的名字, 那么可以直接通过访问一个变量得到另外一个变量的值:在变量前面再多加一个 FILES2访符号。
//可变变量

 $a = 'b';
 $b = 'bb';
 echo $$a  //输出bb

3、变量传值
变量传值一共有两种方式:值传递,引用传递
值传递:将变量保存的值赋值一份,然后将新的值给另外一个变量保存
引用传递:将变量保存的值所在的内存地址,传递给另外一个变量:两个变量指向同一块内存空间

$a =10;
 $b = $a;
 $b = 5;
 echo $a,$b; //10  5
 
 $c =10;
 $d = &$c;
 $c =5;
 echo $c,$d  //5 5

常量

1、定义及使用
在PHP中常量有两种定义方式(5.3之后才有两种)
1) 使用定义常量的函数:define(‘常量名’,常量值);
2) 5.3之后才有的:const 常量名 = 值;

define('PI',3.14);
 const PI2=3.141;
echo PI,PI2; //3.14  3.141
define ('-_-','123'); //define可以定义特殊常量
//const -_-1 = '123' 会报错
echo constant('-_-');
//echo -_- //会报错

2、常用的几个系统常量
PHP_VERSION:PHP版本号
PHP_INT_SIZE:整型大小。(1字节8位。32位4字节,64位8字节)
PHP_INT_MAX:整型能表示的最大值(PHP中整型是允许出现负数:带符号)
3、魔术常量
在PHP中还有一些特殊的常量,他们有双下划线开始+常量名+双下划线结束,这种常量称之为系统魔术常量:魔术常量的值通常会跟着环境变化,但是用户改变不了

__DIR__:当前被执行的脚本所在电脑的绝对路径
__FILE__:当前被执行的脚本所在的电脑的绝对路径(带自己文件的名字)
__LINE__:当前所属的行数

__NAMESPACE__:当前所属的命名空间
__CLASS__:当前所属的类
__METHOD__:当前所属的方法
echo __NAMESPACE__,__DIR__,__FILE__,__LINE__ //D:\greenPro\apache\host1D:\greenPro\apache\host1\varandremark.php104

数据类型

php的八种数据类型
简单(基本)数据类型:4个小类
整型:int/integer,系统分配4个字节存储,表示整数类型(有前提)
浮点型:float/double,系统分配8个字节存储,表示小数或者整型存不下的整数(比如32位存不下的整型)
字符串型:string,系统根据实际长度分配,表示字符串(引号)
布尔类型:bool/boolean,表示布尔类型,只有两个值:true和false

复合数据类型:2个小类
对象类型:object,存放对象(面向对象)
数组类型:array,存储多个数据(一次性)

特殊数据类型:2个小类
资源类型:resource,存放资源数据(PHP外部数据,如数据库、文件)
空类型:NULL,只有一个值就是NULL(不能运算)

类型转换
自动转换:系统根据需求自己判定,自己转换(用的比较多,系统自己判断需要的类型,效率偏低)
强制转换:人为根据需要的目标类型转换
强制转换规则:在变量之前增加一个括号(),然后在里面写上对应类型:int/integer….其中NULL类型用到unset()
布尔true为1,false为0
字符串转数值有自己的规则
以字母开头的字符串,永远为0
以数字开头的字符串,取到碰到字符串为止(不会同时包含两个小数点)

$a = 'abc1.1.1';
$b = '1.1.1bbb';
echo (int) $a; //0
echo  (int) $b;//1
echo (float) $a; //0
echo  (float) $b;//1.1

类型判断
通过一组类型判断函数,来判断变量,最终返回这个变量所保存数据的数据类型(相同结果为true,失败为false):
is_XXX(变量名)
Bool类型不能用echo来查看(不能分辨是字符串的true还是bool的true),可以使用var_dump结构查看

$a = 'abc1.1.1';
$b = '1.1.1bbb';
var_dump(is_int($a));//bool(false)
var_dump(is_string($a));//bool(true)

获取类型
Gettype(变量名):获取类型,得到的是该类型对应的字符串

$a = 'abc1.1.1';
$b = '1.1.1bbb';
echo  (Gettype($a))//string

设置类型
Settype(变量名,类型)(返回bool值表示转换成功与否):设定数据类型:与强制转换不同
1)强制转换(类型)变量名,是对数据值复制的内容进行处理(不会处理实际存储的内容)
2)settype会直接改变数据本身

$b = '1.1.1bbb';
echo  (Gettype($b));//string
var_dump(settype($b,'int'));//bool(true)
echo  (Gettype($b));//integer
echo  $b;//1

整数类型
保存整数数值(范围限制),4个字节存储数据,最大就是32位:42亿多。但是在PHP中默认是有符号类型(区分正负数)
PHP中提供了四种整型的定义方式:十进制定义,二进制定义,八进制定义和十六进制定义

$a = 120;		//10进制
$b=0b110;	//2进制  0b开头 b:binary
$c=0120;		//8进制 0开头
$d=0x120;	//16进制 0x开头
echo $b." ".$d // 6  288

Decbin():十进制转二进制
Decoct():十进制转八进制
Dechex():十进制转十六进制
Bindec():二进制转十进制
var_dump(decbin(200))//string(8) "11001000"

浮点类型
小数类型以及超过整型所能存储范围的整数(不保证精度)
浮点型定义有两种方式

$f = 1.23;
$f = 1.23e10;	//科学计数法,其中e表示底10。1.23*10^10

尽量不要用浮点数做精确判断:浮点数保存的数据不够精确,而且在计算机中凡是小数基本上存的都不准确

布尔类型
两个值true和false,通常是用于判断比较
在进行某些数据判断的时候,需要特别注意类型转换
Empty():判断数据的值是否为“空”,不是NULL,如果为空返回true,不为空返回false
Isset():判断数据存储的变量本身是否存在,存在变量返回true,不存在返回false

猜你喜欢

转载自blog.csdn.net/zhangxm_qz/article/details/108509522