1.打印输出
1.echo ‘显示’输出内容到浏览器, 不可以打印数组,会报变量类型的错误,
2.print ‘打印’ 有返回值
俩者区别echo 效率更高
3.var_dump 返回完整信息,可以打印数组,包含数值与数据类型
4.ob_clean(); 清除PHP缓冲区内容,上述内容变量的不会输出
5.print_r( $value,true) ;一般用于线上调试输出日志,不会直接给用户看,配合file_put_contents(aa.txt,$value)使用,参数1 是指定文件 默认为当前级别的路径,参数2 是日志要记录的成员变量
2.变量类型
一共8中,分别是4种标量,2种复合(array,object),2种特殊(resouser,null)
标量类型:
$int =100 //整形
$float = 10.0 //浮点型
$bool = ture // 布尔型
$str = "zhangsan" //字符串
资源类型:
resouser //资源类型 保存到外部资源的一个引用
null //不表示空格 也不表示0,更不表示空字符串,只是单纯的表示没有值 为空, 它是不区分大小写的
PHP是弱类型的语言,变量的类型随着值的变化而变化
3.变量类型转换
变量类型转换有俩种形式分为强制转换和自动转换,
a.强制转换
也可以理解为临时转换的,比如在进行url上分页操作获取数据时,url默认都是全部为字符串的,其中4必须要为整形才可以获取到数据
案例代码如下:
$page= $_GET['page']; //获取超全局变量的值赋给page,如果是post类型请求则用$_POST获取
var_dump($page); //打印输出$page的值为 string类型的
强制转换改动后如下:
$page = (int)$_GET['page'];
var_dump($page); //值为int类型数据
也可以强制转换为浮点型 或者字符串型, ()内添加对应的数据类型即可
b.自动转换
数据类型在某些情况下,自动会变为其他的类型参与运算,比如
$name="张三111";
@$nam = 100+$name; //@是错误抑制符
var_dump($nam);
//将字符串类型的值与整形类型值进行相加,得出后结果为int类型
c.永久转换
以上类型是临时转换,都无法改变变量本身值的类型,而是通过转换将得到的新类型的数据赋值给了新的变量,原变量的类型与值均保持不变的
$page = $_GET['page'];
echo gettype($page); //string
echo gettype((int)$page); //integer
利用系统函数gettype可以获取到数据的的类型, 同时也可以利用系统函数settype()来强制转换当前数据的类型
settype($_GET['page'],'integer'); //参数1 需要转换的数据,参数2转换的类型
echo gettype($_GET['page']); //integer
3.变量释义
变量:代码中要暂存的数据载体,会在内存中分出一块空间,可以复用;
命名:合法标识符
仅允许字母a-z,A-Z,数字,下划线_组成,但是不允许数组开头
系统预定义的保留字,关键字不能作为变量的命名
命名要有意义,可以一眼就理解
变量严格区分大小写,函数不区分大小写
多个单词组成的话可以用驼峰法命名 aaBbCc
4.变量赋值方式
a.传值赋值
将原来变量的值复制出来一份新的值内存空间地址给另外一个变量,修改俩个变量的值互不影响,记住复制操作~
$a=30;
$b=$a;
echo $b; //30
$a=45;
echo $b; //30
a.引用赋值
地址引用符号& 原理,新的变量指向引用原始变量,互相影响,没有复制操作,共用一个地址 因而引用赋值的方式速度效率会更快一些
$a=30;
$b=&$a;
echo $b; //30
$a=45;
echo $b; //45
unset($a) ; // 仅仅是将$a与$b 相关关联的关系取消,不会被直接释放掉
isset($a) //检测变量是否被定义,若变量值存在并且不为null返回true,否则返回false
empty($a) //检测变量是否为空,为空返回true,否则返回flase ; 特殊情况 0,空字符串,null值 false的值返回结果都为true
5.变量作用域
—局部变量,定义在函数内部,属于局部变量,只能在函数内部访问,另外全局变量在函数内部也是无法访问的,如果访问需要通过关键字global 来在函数内部声明
$a=100;
$b=200;
function demo(){
global $a,$b; //1这里用关键字global声明
echo $a+$b;
}
demo(); //300
6.系统预定义变量
//系统预定义变量
// 超全局变量: 数组,任何地方都可以访问,不受作用域限制
// $GLOBALS: 引用全局作用域中可用的全部变量
// $_SERVER: 服务器和执行环境信息
// $_GET :通过 URL 参数(又叫 query string)传递给当前脚本的变量的数组
// $_POST:当 HTTP POST 请求的 Content-Type 是 application/x-www-form-urlencoded 或 multipart/form-data 时,会将变量以关联数组形式传入当前脚本
// $_FILES:通过 HTTP POST 方式上传到当前脚本的项目的数组
// $_COOKIE:通过 HTTP Cookies 方式传递给当前脚本的变量的数组
// $_SESSION:当前脚本可用 SESSION 变量的数组
// $_REQUEST: 默认情况下包含了 $_GET,$_POST 和 $_COOKIE 的数组
// $_ENV: 通过环境方式传递给当前脚本的变量的数组
7.关于常量
1通常固定不变的值为常量,比如圆周率,不能被重新定义或者释放掉
2常量命名不能加$符号,
3常量命名通常全部字母大写,多个单词之间用下划线链接
4常量,类,接口,函数 是全局成员,变量不是全局成员 所以会受作用域限制
####a常量定义
定义有俩种方法,第一种使用const关键字
const PAI = 3.141592657
第二种定义方法使用define()方法
define('CITY','北京');
常量必须初始化赋值,否则会报错,变量可以不用初始化赋值
8.关于魔术常量
PHP 向它运行的任何脚本提供了大量的预定义常量。
不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。
有八个魔术常量它们的值随着它们在代码中的位置改变而改变。
__LINE__ // 文件中的当前行号
__FILE__ //文件的完整路径和文件名
__DIR__ //文件所在的目录
__FUNCTION__ //函数名称
__CLASS__ // 类的名称
__TRAIT__ //Trait 的名字
__METHOD__ //类的方法名
__NAMESPACE__ //当前命名空间的名称(区分大小写)