<?php
/*php 变量 8种数据类型 4个标量类型 2个符合类型 (数组,对象 ) 2个特殊类型(null,resource)*/
//标量类型 布尔型boolean 整型int 字符串string 浮点型float
$username='admin';
$username=123;
$float=true;
//数组
//索引数组:下标为整型的数组
$arr=[1,2,3,4,'admin'];
echo '<pre>';
var_dump($arr);
//g关联数组
$info=['username'=>'chloe','email'=>'123123@qq.com','age'=>'29','gender'=>0];
var_dump($info);
//数组访问
echo $arr[4].'<br>';
echo $info['email'];
//对象 类 实例化的结果
class NBAplayer{
}
$jordan =new NBAplayer;
//null 1.表示一个变量没有值 空 2. 一个null 不表示空格 空字符串 零 3.不区分大小写 NULL
$int =23;
var_dump($int);
//1.如果声明一个变量为空
$int =null;
echo '<br>';
var_dump($int);
//2.unset 释放变量
$username='peter Zhu';
unset($username);
@var_dump($username);
//resource 资源类型 保存到外部资源的一个引用
$handle=fopen('log.text','w');
//永久转换变量类型
$p=$_GET['page'];
echo gettype($p);
echo gettype((int)$p); //integer 只是临时转换
echo gettype($p); //string
echo '<hr>';
//永久转换变量类型
setype($p,'integer');
//php变量类型转换
//强制类型转换 用于 url query srting parmeter
var_dump($_GET['page']); //string '4'
//分页数据必须是和智能星,才能计算偏移量 offset
$page=(int)$_GET['page']; //
echo '<br>';
var_dump($page);
if($page ==10){
echo '数据正常';
}else{
echo '数据异常';
}
$uid=25;
var_dump($uid,(string)$uid,(float)$uid);
var_dump((array)$uid,((array)$uid)[0]);
//系统自动转换变量类型
$foo='100pages';
@$foo +=200;
var_dump($foo);
echo '<hr>';
$foo += 12.8;
var_dump($foo);
$res=5 +'10 kg rice';
@var_dump($res);
$user='chloe';
echo 'how you doing '.$user;
ob_clean();
//bool转换
@var_dump($eamil);
//null ===>false
if(!$eamil){
echo '你好';
}
ob_clean();
//永久转换变量型号
$p=$_GET['page'];
echo gettype($p);
/*变量:代码中需要暂存的数据载体 可以复用 按名访问*
php变量
*/
$_3site ='taobao.com';
echo $_3site;
$username='chloe';
$USERNAME='admin';
echo $USERNAME;
var_dump($username);
VAR_DUMP($USERNAME);
/**变量赋值
* 1.传值赋值
2.引用赋值&
传值赋值 将源变量$a的值 赋值出来一份新的值内存空间地址给另一个变量$b,修改两个变量的值 互不影响
*/
$a=45;
$b=$a;
printf('$a的值为%d,$b的值为%d',$a,$b);
$a=450;
printf('$a的值为%d,$b的值为%d',$a,$b);
// 引用赋值 & 地址引用符 : 不存在复制操作
// 新变量$price2 引用、指向了原始变量(空间地址) 互相影响
$price1 = 8888;
$price2 =&$price1;
printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);
$price1 = 999;
printf('$price1的值为%d,$price2的值为%d<br>',$price1,$price2);
//变量的检测与释放
//isset() 检测变量是否被定义 存在并且不为null返回 TRUE,否则返回false;
var_dump(isset($pwd));
if(isset($pwd)){
echo '用户密码填写了';
}
ob_clean();
//empty()检测一个变量是否为空,为空CIA返回true 不为空返回false
$username='admin';
var_dump(empty($username));
if(isset($username) &&!empty($username)){
echo '用户名存在';
}
$token ='';
var_dump(empty($token));
$token=0;
var_dump(empty($token));
$token=1;
var_dump(empty($token));
//释放
//unset() 释放掉的变量 变为空
/**变量:
* 1.固定值,常量不能被重新定义 不能被取消
* 2.常量的命名钱不能$
* 3.常量的命名s推荐全部大写
* 4.php全部成员:常量 函数 类 接口 (不受作用域的限制)
* 变量不受全局成员 ,严格瘦作业域的限制
*/
//定义常量
//define()
define('NATION','China');
echo NATION;
//CONST 关键字 字面量
const USER_NOT_EXSIT ='用户不存在';
echo json_encode(['msg'=> USER_NOT_EXSIT],320);
printf('国籍:%s',NATION);
class User{
const APP_PATH="/demo5/1.php";
}
//常量必须初始化赋值
$height;
const GENDER ='女';
$noe=200;
$two=300;
//变量作用域
function add(int $a, int $b):string{
return $a+$b;
}
var_dump(add(1,2));
var_dump($noe,$two);
ob_clean();
function add1(){
$a=10;
$b=11;
echo ($a+$b);
}
add1();