变量的数据类型,PHP的打印输出,变量类型的转换以及常量的定义
一.变量的8种类型
PHP是一种弱类型语言,因此PHP中的变量的类型是根据它的值来决定的;
- 变量的8各类型
- 标准类型
- int型(整数);
- 浮点型(float);
- 布尔型 (bool) ;
- 字符串(string);
以上四种又称之为标量
- 符合类型
- 数组(array);
- 对象(类的实例化);
- 特殊类型
- NULL;
- resource ;
1.int型
int型就是整型
$a = 10;
2.浮点型
浮点型就是小数
$b = 10.5;
3.布尔型
true 和 flase
4.字符串(string)
$username = 'Peter';
5.数组(array)
数组分为索引数组和关联数组
索引数组:
$arr= [ 1 , 2 , 3 ,'name'];
索引数组:
$car = ['name' => 'BMW','chexing' =>'330li','price'=3500000];
6.对象.类实例的结果
class car{
};
$Audi = new car;
7.NULL
$int = 10;
unset($int); // unset() 释放掉的变量 变为空
var_dump($int);
8.resource 资源类型
resource 资源类型 保存到外部资源的一个引用
$handle = fopen('log.txt','w');
二,PHP数据的打印输出
- php打印输出
echo ‘显示’ 输出内容到浏览器 没有返回值- print ‘打印’ 有返回值 可用于三元运算符中
- var_dump() 可以返回变量的完整信息
- print_r()打印输出数组, 第二个参数设置为true 可以将变量的信息转换成字符串,不输出到浏览器,只是返回,通常用于线上调试
1.echo
echo 'Hello,world';
2.print
$a = print 'Hello';
echo '<hr>';
var_dump($a);
3.var_dump
$int = 123;
var_dump($int);//var_dump()是一个函数,可以变量的完成信息,返回变量的类型
4.print_r
$arr = [100,200,'name'];
echo '<pre>';
print_r($arr);
三,变量类型的转换
变量类型的转换 :系统自动转换类型 , 临时转换,永久转换
$a = '123abc';
@$a += 200; // 相当于 $a = $a + 200;
var_dump($a);
//系统将$a 转换为INT型
$a = '100abc';
$a += 12.5;
var_dump($a);
//系统会将$a 转换为100
$res = null + '5 kg rice';
var_dump($res);
//系统会将NULL自动转换为0,将'5 kg rice'转换为5
var_dump($username);
//$username 当前变量不存在,会转为NULL;
$password = 'abc123';
echo $password;
echo gettype($password);//int
echo '<br>';
echo gettype((int)$password);//string 这里只是临时转换
echo gettype($password);//int
常量的特点:
- 常量必须初始化,
- 常量无法更新/再次赋值
- 常量命名不需要加$符号
- 常量命名推荐使用大写
- 常量是PHP全局成员: 常量 函数 类 接口,不受作用域限制;
定义常量
使用define()函数,或使用 const关键字
define('USERNAME','Peter');//使用define()函数定义
const NATION = '中国';//使用const关键字定义
const关键字定义常量 不能用在函数和流程控制中,但是能用再类中;
实例演绎变量和常量的区别:
$name = 'Peter';
const NATION = 'USA';
define('SEX','man');
赋值不同
变量第一次赋值为初始化,可以更新和多次赋值;
常量一经定义必须初始化,不能再次赋值;
echo $name;
$name = 'admin';
echo $name;
$name = '灭绝老师';
echo $name;
const NATION = '中国';
echo NATION;
const NATION = 'USA';
echo NATION; //会报错
$name = 'Peter';
function demo1(){
global $name;//函数里边拿不到函数外边的值,需要global()函数吧外部变量引入进来
echo 'Hello'.$name;
}
echo demo1();
echo '<br>';
const NATION = 'USA';
funciton demo2 ()
{ global$name; //变量需要GLOBAL()函数引入
echo $name.'来自'.NATION;//常量不需要,常量的作用域是全局的
}