Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:完成的不错, 总结写得很认真, 引用是复合类型共同的特征, 引用的地址在栈中, 本体在堆中, 了解点数据结构和内存的知识 , 这些就秒懂了
<?php
// 1.变量
// a.php中的变量名必须是"$"+变量名组成
// b.变量名由字母、数字、下划线组成
// c.最好是以字母开头,因为php常量好多是以下划线开头
// d.变量名起名必须是有意义的
// e.变量名是区分大小写的
$username = 'angle';
$userName = 'Hugn';
// 2.输出变量或字符的命令或函数
// php中有很多命令和函数可以输出字符到页面上
// a、echo + 空格 +变量名或字符串
echo $username,'<br>';
// b、print + 空格 + 变量名或字符串
// 注:该命令是有返回值的,如果打印成功返回1
$varp=print $userName;
echo '<br>',$varp,'<br>';
// c、var_dump(要输出的字符或变量)
//注:这是个函数,必须把要输出的字符用大括号括上,输出的是变量的类型、长度、值
var_dump($username);
// d、var_export()
//注和var_dump一样是函数,输出的是变量的值加单引号例:‘Hugn’
echo '<br>';
var_export($userName);
echo '<br>';
// 3.php中变量的类型是弱类型,就是变量的类型是由它的值的类型决定的
$var = 'angle';
var_dump($var);
// a.值为字符串,变量的类型为string
echo '<br>';
$var = 11;
var_dump($var);
// b.值为数值,变量的类型为int
echo '<br>';
$var = true;
var_dump($var);
// b.值为布尔值,变量的类型为bool
echo '<br>';
// 4.变量的传递方式分为值传递和引用传递
$name1 = 'angle';
$name2 = $name1;
// a.值传递,是把name1的值传递给name2
echo $name1,'-----------',$name2,'<br>';
$name1 = 'peter';
echo $name1,'-----------',$name2,'<br>';
//注:值传递时,两个变量是独立存在的,一个的值改变,不会影响另一个
$name2 = &$name1;
//b.引用传递,把变量的地址传给另一个变量
echo $name1,'-----------',$name2,'<br>';
$name1='Hugn';
echo $name1,'-----------',$name2,'<br>';
$name2='angle';
echo $name1,'-----------',$name2,'<br>';
//注:两个变量名共用一个变量空间,其中一个值发生变化,另一个也发生变化
//5.可变变量
//变量名称来自另一个变量,变量名称是可变的,可以动态改变
$var = 'name';
$$var='angle';
echo $var,'-----------',$name,'<br>';
//6.变量的检测与删除
$name = 'angle';
//a.isset(变量名)检测变量是否存在
if(isset($name))
{
echo $name,'<br>';
}
else
{
echo '变量未定义','<br>';
}
//b.unset(变量名)销毁变量
unset($name);
if(isset($name))
{
echo $name,'<br>';
}
else
{
echo '变量未定义','<br>';
}
//7.变量的声明和赋值
$name;
var_dump($name);
//a.变量声明没有赋值时,变量类型为NULL
if(is_null($name))
{
echo '<br>','变量没有赋值','<br>';
}
else
{
echo $name;
}
//b.当表单里没有值时,一般会传一个空字符串,使用empty()函数判断变量里是否有值
$name='';
var_dump($name);
if(empty($name))
{
echo '<br>','变量是一个空字符串','<br>';
}
else
{
echo $name;
}
//8.数据类型
//a.基本数据类型
$name = 'angle';//string字符型
$age = 32;//int数值型 flaot浮点型
$isStudent = true;//bool布尔型
var_dump($name);
var_dump($age);
var_dump($isStudent);
echo '<br>';
//b.复合数据类型
//类与对象
class student //类的声明
{
public $name='angle';
public $age='32';
public $iswork='true';
}
$obj = new student;//类的实例化
echo $obj->name,'<br>';//对象属性的访问
//数组
$arr = ['angle',32,true];
var_dump($arr);
echo '<br>',$arr[0],'<br>',$arr[1],'<br>',$arr[2],'<br>';//数组元素的访问
//c.特殊类型
//null类型
$name=null;
var_dump($name);//变量已经声明但是没有赋值,变量的类型为NULL
echo '<br>';
//资源类型 比如文件
$varFile=fopen('demo1.html','r');
var_dump($varFile);//打印结果为resource(3) of type (stream)
echo '<br>',gettype($varFile),'<br>';//打印结果为resource
?>