PHP基本常识:
NO | 释义 |
---|---|
<?php | 起始标签 |
?> | 结束标签 |
; | 语句分隔符 |
// | 单行注释 |
echo | 可以打印多个变量,且没有返回值 |
仅能打印一个变量,返回1 | |
print_r( ,true/false) | 以人性化的方式打印变量,第二个值为true不打印,返回给调用者 |
gettype() | 获取变量类型 |
var_dump() | 获取变量完整信息 |
var_export() | 返回php源代码 |
error_reporting(E_ALL) | 打开所有报错 |
isset($变量名) | 变量检测。该变量存在且值不为null,才是true(才打印) |
unset($变量名); | 销毁变量,没有返回值 |
<?php
//声明变量
$username = 'qj';
$userName = 'QQQ';
// echo,可以打印多个变量,支持html标签和自变量,无返回值
echo $username, $userName,'<br>';
// print 只能打印一个变量 返回1
echo print $username;
echo '<br>';
// gettupe():获取变量类型,当前是string
echo gettype($username),'<hr>';
//var_dump():获取变量完整信息
var_dump($username);
echo '<hr>';
//var_export:返回的是php的源代码
var_export($username);
变量命名规则:
- 必须以$开始,且开头只能用下划线(_)或者英文字母。
- 变量名中不允许使用特殊字符,可以用中文 但是不能用
- 变量名区分大小写(函数并不区分),要望文生义。
<?php
$username = 'admin';
$userName = 'qj';
echo $username,'<br>';
echo $userName,'<hr>';
// 函数不区分大小写。 strtoupper:将一个字符串转为大写
echo strtoupper($userName),'<br>';
echo STRTOUPPER($userName),'<hr>';
变量传值:是指有一个变量已经存在数据,然后将该变量赋值给另外一个变量
- 值传递:(变量代表的数据传递,变量自身不受彼此影响,在一个变量发生改变后,另外一个变量不受影响)
// 值传递(默认方式)
$price1 = 3999;
$price2 =$price1;
echo $price2,'<br>';
$price1 = 6999;
echo $price2,'<hr>';
$price1 = 3999;
$price2 =$price1;
echo $price1,'<br>';
$price2 = 6999;
echo $price1,'<hr>';
无论改变那个变量的值 另一个总是不变
引用传递:变量代表的数据所在地址传递,一个改变会影响另外一个,一个变量改变后,另外一个变量跟着改变
//引用传递 在等号的右边/右值前面加上&(取地址符)
$price1 = 3999;
$price2 =&$price1;
echo $price2,'<br>';
$price1 = 6999;
echo $price2,'<hr>';
$price1 = 3999;
$price2 =&$price1;
echo $price2,'<br>';
$price2 = 6999;
echo $price1,'<hr>';
- 随便改变任意一个变量 另一个跟着改变
可变变量:是获取一个普通变量的值,作为这个可变变量的变量名。
/* 先创建变量 $email 然后打印输出,
在创建$var变量(var的值等于email变量的名),
$email可以写成:$$var(可变变量)。都是输出admin@php.cn
*/
$var = 'email';
// $email = 'admin@php.cn';
// 变量名可以动态创建
$$var = 'admin@php.cn';
echo $email;
变量的检测与删除
// 打开所有报错
error_reporting(E_ALL);
// echo $username;
// isset() 变量检测
$username = '丘佳';
$username = null;
// isset(): 如果该变量存在且值不为null,才是true(才打印)
if(isset($username)) echo $username.'<br>';
else echo '没有定义该变量';
// unset():销毁变量,没有返回值
unset($username);
// 因为删除了浏览器会报错 提示没有定义变量
echo $username;
数据类型:{四种标量(基本)类型,两种复合类型,两种特殊类型}
整数/型(integer):包括正整数 负整数 和0。
必须至少有一个数字(0~9);
不能包含逗号或空格;
不能包含小数点;
可以是正数或负数。浮点型(float/double):浮点型也是用来表示数字的,与整型不同除了可以表示整数外它还可以用来表示小数和指数
- 字符串(string):单引号方式、双引号方式、Heredoc 方式。
- 布尔型(boolean):只有两种取值,true和false而且不区分大小写
- 复合数据类型:复合数据类型允许将多个类型相同的数据聚合在一起,表示为一个实体项。复合数据类型包括数组(Array)和对象(Object)
//2. 复合类型,对象,数组
$obj = new stdClass;
// 对象是属性和方法的无序集合
$obj->name ='peter zhu';
echo $obj->name,'<hr>';
// 数组
$arr = ['电脑', 4500, 'dell'];
// print_r() 以人性化的方式打印变量,true表示不直接打印,而返回给调用者
// 返回就一定要有个接受者
$str = print_r($arr,true);
echo '<pre>'.$str.'</pre>';
// 基本类型:标量,单值。
// 复合类型:多值。
// 特殊类型
// null
$num = null;
var_dump($num);
echo '<br>';
//文件资源类型
$f = fopen('demo2.php','r');
var_dump($f);
数据类型转换:
<?php
// 变量的类型转换(运算时候)
// 自动转换:
$a = null;
$b = true;
$c = false;
$d = '5g';
$e = 'php';
$f = 15;
// null 在算数运算中自动转为0
echo $a + 10, '<br>';
// 布尔值true在算数运算中 转为 1和 flase转为0
echo $b + 10, '<br>';
echo $c + 10, '<br>';
//字符串只有以数值或者小数点开始的时候,
//系统才会有可能将字符串进行数值转换,要不然直接转换成0
echo $d + 10, '<br>';
echo $f + 10, '<br>';
// . 是字符串连接
// 吧sf转换为'15'
echo $e . $f, '<br>';
echo '<hr>';
// 强制转换 不推荐使用
echo (int)$e + 10, '<hr>';
// intval(),strval() 只是临时转换
// intval() 将字符串转为整数
echo intval($e) + 20, '<hr>';
echo gettype($e),'<hr>';
// strval() 将整数转为字符串
echo strval($f) . 'hello';
echo '<hr>';
echo gettype($f);
echo '<hr>';
//永久转换 settype();
settype($f,'string');
echo gettype($f);
总结:
与之前相比 还是进步了一些,现在开始第二阶段的php,感觉又回到了小白,还是需要继续坚持。