您现在的位置是:首页 > 后端 > PHP PHP
php01(变量,常量,数据类型)
2020-05-06【PHP】1383人已围观
简介php是一种运行在服务器端的解释性脚本语言,php主要用于服务器脚本php执行过程-- 词法分析--语法分析--编译--加载编译的代码--执行●●变量:保存可变的数据的容器。命名规则:字母下划线开头,后面跟任意长度下划线,字母,数字echo 向浏览器输出字符串die exit(""); 报错输出,后面的代码不执行var_dump(); 此函数可输出变量的类型exit退出 unset($a)删除变量信息●变量的操作⊙增:php的变量可以直接拿来使用 &
php是一种运行在服务器端的解释性脚本语言,php主要用于服务器脚本
php执行过程-- 词法分析--语法分析--编译--加载编译的代码--执行
●●变量:保存可变的数据的容器。
命名规则:字母下划线开头,后面跟任意长度下划线,字母,数字
echo 向浏览器输出字符串
die exit(""); 报错输出,后面的代码不执行
var_dump(); 此函数可输出变量的类型
exit退出 unset($a)删除变量信息
●变量的操作
⊙增:php的变量可以直接拿来使用 $num=1;
⊙删:使用unset()函数来删除变量。 unset($num);
⊙改:直接加入新的变量
⊙查:用isset()函数来检查函数是否定义,用empty()来检查函数是否为空。
检查变量是否定义
用isset()来检查,定义过为真。
检查变量是否为空
用empty()来检查,是空为真。
●变量的赋值
⊙传值赋值
$m=23; $n=$m; echo $m;
⊙引用赋值
$m=10; $n=&$m;当被引用的对象值改变时,引用对象的值也随之改变
⊙删除引用
unset($a)删除变量信息
●可变变量
<?php
$m=a12;
$n=a13;
$i=a14;
if($i==a14){
$num='m';
}else{
$num='n';
};
echo $num,$$num; m a12
当变量有一个中间值,这个中间值得名称可能是非法变量名。
对于不确定变量名的时候,可以用{}进行定界
●预定义变量:php预先定义好的变量
$_GET 接收GET方式传递过来的数据
$_POST 接收表单以POST传递过来的数据
$_REQUEST =$_GET + $_POST
$_SERVER 保存服务器、浏览器相关的数据
$_ENV 保存环境变量相关的数据
$_COOKIE 保存COOKIE数据
$_SESSION 保存SESSION数据
$_FILES 接收上传文件的数据
$GLOBALS 可以引用全局范围内可见的变量
$argc $argv 保存命令行程序接收的参数数量和数据
⊙GET方式传值是通过url后面加入?变量名 1=值 1&变量名 2=值
注意:1.如果值有特殊符号或中文内容时,最好使用urlencode()函数去编码
b.php?name=<?php urlencode('值') ?>
2.GET方式传递有可能出现变量名相同的情况
后面的变量的值会覆盖前面的同名变量的值
通过将表单的method属性设为get,也可以实现get方式传值
⊙POST方式传值
POSRT的数据不会再url后面显示
POST可以传递更大数据量的数据,也不考虑urlencode问题
⊙REQUEST传值
等于GET+POST传值
当post与get有同名变量时会覆盖
覆盖方式可以在php.ini中设置
request_order = "GP"
●变量的作用域
全局变量:在脚本运行中可见的变量,不包括在局部作用域中
局部变量:在函数中的变量
超全局变量:在所有的范围内可见的变量。 $_GET,$_POST
●静态变量一般放在函数提内
生命周期:脚本执行完毕
function fun(){
static $num = 10;
$num++;
echo $num;
}
fun();//11
fun()//12
●●常量
在脚本运行过程中,值保持不变的量
●表示方法:常量是直接用一个名称来表示的。前面不需要$符号 num=4;
●常量的操作
增:常量必须用define()函数或const关键字来定义
define('NUM','40'); const NUM2= 4;
var_dump(NUM,NUM2);
删,改:常量不允许删除,修改,重定义。
查:用输出函数直接进行显示
echo var_dump echo constant('常量名')
查看函数是否定义:defined()函数判断
var_domp(defined('常量名'));
php不允许使用未定义的变量
●预定义常量:php预先制定好的常量
echo PHP_INT_MAX; php中整型最大值
获取所有常量get_defined_constants(true);(true)将常量分类显示出来
●魔术常量:值在运行时才确定的量
__LINE__获得当前行号
__FILE__当前文件结对路径
__DIR__获取当前文档的绝对路径
dirname(__FIEL__) = __DIR__
__FUNCTION__获得函数名称
__CLASS___ 获取类名称
__METHOD__获取方法名称
__NAMESPACE__当前命名空间名称
●●数据类型
php支持8种数据类型
4种标量类型:整型、浮点型、布尔型、字符串型
2种符合类型:数组、对象
2种特殊类型:资源类型、NULL类型
伪类型:混合型(mixed),数字型(number),回调(callback)
标量类型
●布尔类型 bool boolean
布尔型只有两个值:true,false,不区分大小写
常用于逻辑判断
其他类型的变量也可以转换成布尔类型 $m=4; var_dump(bool($m));
●整型 int integer
占用4个字节 byte 1byte=8bit
整型在计算机上储存时,最高位是符号位,0正,1负
常量PHP_INT_MAX 最大储存位
整数溢出后为浮点型
●浮点数 float
php中部分单双精度
浮点数的有效位数是14位
从最左边不为0的数开始,直到结束的数的个数,不含小数点
浮点数不能精确比较
●字符串型 string:字符的集合。
四种表示方式:单引号、双引号、nowdoc,heredoc
用单引号表示时:字符串中含有单引号时,用\转义 \'
反斜杠\出现在字符串最后时需要转义12\\
双引号不需要转义
单引号中的变量不能够被解析
用双引号表现时:双引号中的变量能够被解析
要输出$时要用\转义
可以输出ascii码代表的字符
Nowdoc 主要为了表示内容比较复杂的字符串
格式:$str=<<<'自定义名称'
大段类容
自定义名称;
类似于单引号内容
Heredoc
格式:$str=<<<自定义名称
大段类容
自定义名称;
类似于双引号内容
有时变量不清楚时,可以用{}定界符来明确标量
{$name}09877
复合类型
●数组类型 array :按照一定结构的数据集合
数组中的数据称为元素,它是由键和值组成的键值对。 key=>value
如果元素没有指定键,那么系统会给它分配一个下标
echo输出一个数组元素 echo $arr[3];
⊙array()结构定义数组
空数组:没有数据的数组 $arr = array(); var_dump($arr);
键值数组: 元素全部由键值对组成的数组
$arr1 = array(
'name'=>'zhangsan',
'age'=>18,
'city'=>'shanghai',
'love'=>'game',
);
var_dump($arr1);
下标数组:就是元素全部用无键数据组成的数据
$arr1 = array('zhangsan','18','shanghai','game');
var_dump($arr1);
当元素没有键时,元素的下标会由系统进行分配,从0开始,
当中间某个元素有下标时,如果是最大值,则后面的元素从其加1开始
小值代替前面的元素
关联数组:关联数组中的键不参与下标分配
$arr1 = array('zhangsan','age'=>18,'game');
var_dump($arr1);
array(3) { [0]=> string(8) "zhangsan" ["age"]=> int(18) [1]=> string(4) "game" }
负数可以作为元素的下标,但它不影响下标的分配
⊙使用[]定义数组,每次只能定义一个数组元素,通过这种方式不能够定义出空数组,
因为他本身就是在定义一个数组元素。 $arr2[] = 'game'; var_dump($arr2);
定义下标数组:
$arr3[] = 'age';
$arr3[] = 'love';
$arr3[] = 'city';
var_dump($arr3);
array(3) { [1]=> string(3) "age" [2]=> string(4) "love" [3]=> string(4) "city" }
定义键值数组:
$arr4['age'] = '18';
$arr4['love'] = 'game';
$arr4['city'] = 'shanghai';
var_dump($arr4);
array(3) { ["age"]=> string(2) "18" ["love"]=> string(4) "game" ["city"]=> string(8) "shanghai" }
⊙键 , 下标 , key
数组元素的键只能是整形和字符串类型,可以为负数
当键值是字符串时,且值是合法的整数,则会自动转换成下标
浮点数下标会丢弃小数部分,转化成下标
$arr5[1] = 'qq';
$arr5[3.3] = 'ww';
$arr5['4.4'] = 'rr';
var_dump($arr5); array(3) { [1]=> string(2) "qq" [3]=> string(2) "ww" ["4.4"]=> string(2) "rr" }
布尔型true转化成下标值1,false转化成下标0。 $arr[true]='18';
键或者下标可以使用表达式 $arr[1+2*3] = 'age';
数组的元素值可以是任何类型的数据,
$arr6= array(
'age'=>'18',
'city'=>'shanghai',
'love'=>'game',
'abc'=>array('a'=>1,'b'=>2,"c"=>3,)
);
var_dump($arr6);
⊙访问数组:
使用[]中放下标或键名来访问 echo $arr[3]; echo $arr['name'];
访问二维数组时,使用[][] echo $arr6['abc']['b'];
⊙修改数组:
使用[]里面写下标或键来对数组元素重新赋值。
$arr[4]=>'asd';
数组名重复将覆盖。
⊙删除数组:
使用unset()来删除数组或数组元素。
删除整个数组unset($arr);
●对象,object
对象是一种特殊的数据结构,它是通过类的实例化得到的。
类,class,是设计图,是对象的抽象
对象,object,是实物,通过类的实例化得到
实例化,new,从设计图产生实物的过程
⊙对象的定义
class student{
public $name;
public $age;
}
$s = new student();
var_dump($s);
object(student)#1 (2) { ["name"]=> NULL ["age"]=> NULL }
⊙访问对象
使用->可以访问对象的属性和方法
对象变量名->属性变量名 ->左右不能有空格
echo $s->age;
●资源类型 , resource
资源类型是一种特殊的文件类型,它是通过特殊的函数产生的外部引用
例如:数据库连接,打开文件句柄
⊙自定义资源
$zy popen('index.php','r');
$zy = mysql_connect('localhost','root','admin');
var_dump($zy);
resource(3) of type (stream)
修改php配置文件,连接数据库
⊙删除资源类型
资源类型数据不能用unset删除
通过php提供的函数去删除fclose($zy); mysql_close($zy);
●NULL类型
表示什么都没有,不是表示空,只有一个数据 NULL
通过unset()删除变量可以产生null
可以直接定义变量为null $a = null;
⊙判断null类型
使用isset()可以判断变量是否定义
使用is_null()判断变量是否是null
关注博客,更多精彩分享,敬请期待!
Tags:
很赞哦! (0)
相关文章
随机图文
-
css动画
> 在CSS动画中,如果你想让元素的 border-radius 从50%逐渐变为0%,你可以使用 @keyframes 规则来定义这一变化过程。以下是一个简单的示例: ```css /* 定义一个动画 */ @keyframes borderRadiusChange { 0% { border-radius: 50%; } 100% { border-radius: 0; } } /* 将动画应用到某个元素上 */ .someElement -
bat锁屏和熄屏 windows
bat锁屏和熄屏 windows -
PHP中判断字符串是否含有中文
## 判断全是中文 > 方法一 ``` $str = '吾爱编程'; if (preg_match_all("/^([\x81-\xfe][\x40-\xfe])+$/", $str, $match)) { echo '全部是中文'; } else { echo '不全是中文'; } ``` > 方法二 ``` $str="'吾爱it编程"; if(!eregi("[^\x80-\xff]","$str")){ echo "全是中文"; -
PHP日历
PHP日历小案例