PHP变量与常量学习
<?php // php的打印与输出 // 1.echo"显示"输出内容到浏览器 没有返回值 // 2.print'打印' 有返回值 可用于三元运算符中 // var_dump()可以返回变量的完整信息 // 4.print_r()打印输出数组,第二个参数设置为true 可以将变量的信息转换成字符串, // 不输出到浏览器,只是返回,通常用于线上调试 echo 'how you doing?<br>'; $res = print'你好'; echo '<hr>'; var_dump($res); echo'<hr>'; $tel = 123456789; // echo $tel,$tel,tel; echo $tel . '||' . $tel . '||' . $tel; // ob_clean(); $arr = ['花生','玉米','火龙果','青苹果',45,63,33]; //echo $arr// Warning: Array to string conversion in echo'<pre>'; print_r($arr); echo'<hr>'; var_dump($arr); $arr2 = ['uniapp','thinkphp','bootstrap']; $res = print_r($arr2,true); file_put_contents('log.txt','调错信息:'.$res);//file_put_contents
函数将这个字符串写入名为log.txt
的文件中。这个函数不会关心文本的格式,它只会将给定的字符串写入文件。 ?> <!-- 2 --> <?php // php变量 8种数据类型 4标量类型 2符合类型(数组,对象) 2特殊类型(null,resource) // 标量类型 布尔型boolean 整形int 字符串string 浮点型float $username = 'admin'; $username=123; $username=23.32; $username=true; echo $username; var_dump( $username ); // 数组//打印数组var_dump,print_r // 索引数组:下表为整型的数组 $arr = [1,2,3,4,'admin']; echo '<pre>'; var_dump($arr); // <!-- 关联数组:下标为字符串的数组 --> $info = [ 'uname'=>'chloe', 'email'=>'951242@qq.com','age'=>28,'gender'=>0]; var_dump($info); // 数组的访问 echo $arr[4].'<br>'; echo $info['email']; // 对象 类实例化的结果 class声明类 // class NBaplayer{ // } // $jordan = new NBaplayer // null 1.表示一个变量没有值 空 // 2.不表示空格 空字符串 零 // 3.不区分大小写 // ob_clean();//清空缓存区的内容(上面的内容清空) $int = 34; var_dump($int); // 如何声明一个变量为空 // 1. $int = null; echo '<br>'; var_dump($int); // 2.unset释放变量 $username = 'xi xi'; unset($username); @var_dump($username);//@错误抑制符 //resource 资源类型 保存到外部资源的一个引用 $handle=fopen('log.txt','w');//fopen()
函数用于打开文件或者 URL。尝试以写入模式('w')打开名为log.txt
的文件。如果文件已存在,这个操作会覆盖文件内容(即删除原有内容),如果文件不存在,则会创建该文件。 // var_dump($handle);//resource(4) of type (stream) // php变量类型转换 // 强制类型转换(临时) 应用于url query string parameter // var_dump($_GET['page']);//string(1) "2" // 分页数据必须是整型,才能计算偏移量 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;//$foo = $foo+200; var_dump($foo);//300 echo'<hr>'; $foo += 12.8; var_dump($foo);//312.8 @$res = null + '10kg rice'; var_dump($res);//10kg @$res = 5 + '10kg rice'; var_dump($res);//15 $user = ' chloe'; //字符串的拼接 echo 'how you doing '.$user; echo '<hr>'; // bool类型的转换 @var_dump($email);//null // null<===> false if(!@$email)//@错误抑制符 { echo'你好'; } $p = $_GET ['page']; echo gettype($p);//string echo gettype((int)$p);//integer只是临时转换 echo gettype($p);//string echo 'hr'; //永远转化变量类型 settype($p,'integer');//settype()
函数用于设置变量的类型 echo gettype($p);//integer,gettype()
函数用于获取变量的类型。 // 变量:代码中需要暂存的数据载体 可以复用 按名访问 // php变量命名规则 // 1.变量规则要让你的partner望文生意 // 2.变量名不能以数字开头,可以以字母或者下划线开头后面跟上字母数字下划线
// 3.变量是区分大小写,函数不区分大小写 // 4.多个单词组成的变量 itemprice itemPrice itemName itenDesc $_3site = 'taobao.com'; echo $_3site; $useername = 'chloe'; $USERNAME = 'admin'; echo $USERNAME; // var_dump($username); // VAR_DUMP($USERNAME); // ECHO SHA1('wwwphpcn');//1104b72387fbe4f71ca25616b135407b0dfc4552 // 变量赋值 // 1.传值赋值 // 2.引用赋值 & // 传值赋值 将源变量$a的值 复制出来一份新的值 内存空间地址给另一个变量$b,修改两个变量的值 互不影响 $a = 45; $b = $a; printf('$a的值为%d,$b的值为%d<br>',$a,$b);//%d
格式化说明符,//$a的值为45,$b的值为45 $a = 450; // printf('$a的值为%d,%b的值为%d<br>',$a,$b);//$a的值为450,$b的值为45 // 引用赋值 & 地址引用符:不存在复制操作 引用赋值更加快捷 // 新变量$price2引用/指向了原始变量(空间地址),互相影响 $price1 = 8888; $price2 = &$price1;
//$a的值为8888,$b的值为8888
printf('$price1的值为%d,$price2的值为%d<ber>',$price1,$price2);
$price1 = 7999; printf('$price1的值为%d,$price2的值为%d<ber>',$price1,$price2);//$a的值为7999,$b的值为799// 变量的检查与释放 // isset()检测变量是否被被定义 存在并且不为null返回true,否则返回false
var_dump(isset($pwd));
if(isset($pwd)) {
echo'用户密码填写了'; }
//empty()检测一个变量是否为空,为空才返回true 不为空返回false
$username = 'admin';
var_dump(empty($username));
if(isset($username) && !empty($username))
{
echo '用户名存在';
}
$token = '';
var_dump(empty($token));//true
$token = 0;
var_dump(empty($token));//true
$token = false;
var_dump(empty($token));//bool(true)
$token = 1;
var_dump(empty($token));//bool(false)
$token = true;
var_dump(empty($token));//bool(false)
// 释放
// unset()释放掉的变量 变为空
// 常量
// 1.固定值,常量不能被从新定义 不能被取消
// 2.常量的命名前不能$
// 3.常量的明名推荐全部大写
// 4.php全局成员:常量 函数 类 接口 (不接受作用域的限制)
// 变量不是全局变量,严格受作用域的限制
// 定义常量
// 1.define()
define('NATION','china');
echo NATION;
//2. Const关键字 字面量 定义常量
const USER_NOT_EXSIT = '用户不存在';
echo json_encode(['msg'=>USER_NOT_EXSIT],320);
//%s整形,%d字符串
printf('国籍:%s',NATION);
class User{
// 类常量只能用const关键字声明
const APP_PATH = "/0802/part1";
}
// 常量必须初始化赋值
$height;
const GENDER = '女';
// 变量作用域
// 函数体外声名的变量的全局变量
$one = 200; $two = 300;
function add(int $a,int $b):string
{
return $a+$b;
}
// var_dump(add(1,2));
// var_dump(add($one,$two));
function add1() {
$a = 10; $b = 11; echo ($a+$b);
}
add1();
echo $a;//非法访问 在函数外部不能访问函数内部定义的全局变量s ?>