4月15日作业
1. 配置本地php运行环境
已配置到位
2. 将课件代码全部运行一遍,并添加注释
php代码
<?php
//demo1.php
//求和函数
function sum(int $a, int $b) : string
{
return "$a + $b = " .($a + $b) ;
}
//echo打印输出
echo sum(30 , 50);
echo '<hr>';
//demo2.php
//建立变量
$email = 'chengdongxu@php.cn';
//用echo打印变量输出,echo没有返回值
echo $email , '<br>';
//用print打印变量输出,print有返回值,为true或者1
print $email . '<br>';
//用var_export()打印输出,此打印方式可以输入该变量的类型和字符串的数量
var_dump($email);
echo '<hr>';
//demo3.php
//先建立2个英文单词一样但是区分大小写的变量名
$username = 'chengdongxu';
$userName = 'mafei';
//打印输出2个区分大小写的变量名
echo $username . '同事是' . $userName;
//没有使用$开始的变量名是错误的,例如
//hello = 'php';
//变量名不允许用数字开头,例如
//$111hello = 'php';
//变量名中不允许使用特殊字符,例如
//$email&& = 'admin@php.cn'
//变量名尽可能寓意话,方便理解,有些变量名虽然正确但无意义,例如
$aaa = 888;
$_ = 360;
$_123 = 850;
echo '<hr>';
//demo4.php
//建立变量
$var = 120;
//打印变量
var_dump($var);
//再次建立一个变量名相同的变量
$var = 'hello';
//再次打印该变量,打印结果发生变化,以第二次建立的为准,说明变量的值发生了传递
var_dump($var);
echo '<hr>';
//demo5.php
//建立变量
$name1 = 'chengdongxu';
//建立第二个变量让等于第一个变量
$name2 = $name1;
//打印这2个变量,其实就是一个值
echo $name1 . '其实就是' . $name2 , '<br>';
//更新第一个变量名
$name1 = 'laocheng';
//再次打印这2个变量,$name1值被传递为新的值,但是$name2的值并没有发生变化,还是保持第一个$name1的值
echo $name1 . '其实就是' . $name2 , '<br>';
//$name2的值引用$name1
$name2 = &$name1;
//再次打印这2个变量,这个时候2个变量的值都被传递
echo $name1 . '其实就是' . $name2 , '<br>';
echo '<br>';
//demo6.php
//先创建二个变量
$phone = 'number';
$number = 18291893223;
//当第二个变量名刚好等于第一个变量的值时,可以使用可变变量
//打印可变变量,输出的是$number的值
echo $$phone;
echo '<br>';
//demo7.php
//这里是检测变量是否存在,如果存在就输入变量值,如果不在就不输出,当下由于没有建立变量,所以不会输出
if (isset($name3)) echo $name3, '<br>';
//建立一个变量
$name3 = 'hanwei';
//此时再次检测变量的时候已经会输出了
if (isset($name3)) echo $name3, '<br>';
//再销毁这个变量
unset($name3);
//再次检测这个变量是否存在,如果不存在,让输出"变量不存在",实际输出的是"变量不存在"
if (isset($name3)){
echo $name3, '<br>';
}else{
echo '变量不存在';
}
//建立一个变量值为null
$name4 = null;
//打印返回的是布尔值true
var_dump(is_null($name4));
if (is_null($name4)){
echo '变量值为null';
}else{
echo $name4;
}
//建立一个值为空的变量
$name5 = '';
//打印返回的是布尔值是0
var_dump($name5);
//用函数empty检测,返回的是布尔值true
var_dump(empty($name5));
if (empty($name5)){
echo '$name5的值为空';
}else{
echo $name5;
}
echo '<hr>';
//demo8.php
//字符串类型,例如
$name6 = 'xiaohang';
//数值类型,有整数int和小数float,例如
$price = 100;
//布尔值类型,有true和false,例如
$name7 = true;
$name8 = false;
//复合类型中的对象类型
$obj = new stdClass;
//添加对象中的属性
$obj->email = 'admin@php.cn';
//打印输出对象
echo $obj->email . '<br>';
//数组类型
$phone = [5000, 'red', '5G'];
//格式化人性打印数组
echo '<pre>' . print_r($phone, true). '</pre>';
//特殊类型
$num = null;
//打印特殊类型,返回值是null
var_dump($num);
//资源类型,打开一个文件,'r'是用只读的方式打开
$f = fopen('demo0.php', 'r');
//打印输出资源类型
var_dump($f);
//查看$f的类型
echo gettype($f), '<hr>';
//验证资源类型
if (gettype($f) === 'resource'){
echo '我是资源类型';
}else{
echo '我不是资源类型';
}
打印结果
3. 将以上代码发布到博客中, 并写出总结
自己的总结
1、打印输出的方式有3种
序号 | 指令/函数 | 描述 |
---|---|---|
1 | echo | 只能打印字符串,没有返回值 |
2 | 可以打印数组,有返回值,返回值是true或false ,支持pre格式化打印 | |
3 | var_dump | 打印输出包含变量的类型和变量的字符数量,不支持pre格式化打印,没有返回值 |
2、变量值的传递和引用的区别是被传递或引用的变量值前面是否有&
3、可变变量使用的前提是被引用的变量的值必须跟引用者的变量名保持一致
4、数据的类型分为以下3种
序号 | 类型 | 描述 |
---|---|---|
1 | 基本类型 | 包括字符串、数值、布尔值 |
2 | 复合类型 | 包括对象、数组 |
3 | 特殊类型 | 包括null、资源类型 |