批改状态:合格
老师批语:可以!不错!
程序是纯php代码可以不用写结束标签 否则(代码中存在其他代码)则需要完整的写出php脚本<?php ?>
添加注释的代码不会被程序执行,作用 说明注释内容的信息 作用 方便后期维护与逻辑的梳理
<?php// 单行注释// 只存在php程序 可以不用 php结束标签echo '2020-7-3';function sum($a,$b){return "{$a} + {$b} = " . ($a + $b);}// 调用函数 sum 并打印函数返回结果echo sum(10,20);
<?php/*多行注释此脚本存在html标签 需要在适当的地方书写php结束标签*/echo '2020-7-3';?><p>12312</p>
7.打印语句
// echo 可以打印多个表达式,并且识别html标签。但 echo 没有返回值。$username = '盘古';$hobby = ['唱','跳','rap','篮球'];echo 123,'<br/>',$username;// print 只能打印单个表达式 如果非要打印多个变量使用 . 拼接 print()有返回值。print($username);print('hello') . $username;// var_dump() 获取数据的详细信息(变量类型,长度,值);// ps: 1.utf-8编码类型中 中文汉字一般占3个字符 2.gbk编码中一般占2个字符var_dump(123.5);// float(123.5)var_dump($username);// string(6) "盘古"// var_export(); 输出或返回一个变量的字符串表示(源代码)// 1.直接输出 结果var_export($hobby);// 2.也可以通过设置 var_export()的第二个参数为True 从而返回变量的表示$h = var_export($hobby,true);print($h);
变量是临时存储数据的容器
变量是实现代码复用的有效途径
php变量名必须以 ‘$’ 开头
php变量名不能以数字开头
变量名允许以 ‘_’开头
变量名不能包含特殊字符(@ # & * …..)
*变量名(变量标识符):仅允许字母,下划线,数字组合,并且不能以数字开头
*不推荐命名规则: 使用中文 无意义命名
// php 变量区分大小写 函数不区分大小写// javascript 变量和函数都区分大小写// 变量区分大小写$username = 'admin';$userName = 'root';print($username);print($userName);// admin root// 函数 类名不区分大小写(内置函数,自定义函数);// 例如:echo strtoupper($username);echo STRTOUPPER($username);// ADMIN ADMINfunction upName($name){echo strtoupper($name);}upName($username);UPNAME($username);// ADMIN ADMIN
$var = 123;var_dump($var);// int(123)// 此时修改$var的值为 'admin'$var = 'admin';var_dump($var);// string(5) "admin"// $var 的类型由 int类型 变成了 string类型// php 变量的类型由值决定 和javascript一样
值传递(默认的方式)
```php
$price1 = 99;
$price2 = $price1;
// 更新 price2 的值
$price2 = 199;
echo ‘$price1->’,$price1,’<br>‘;
echo ‘$price2->’,$price2,’<br>‘;
// $price1->99
// $price2->199
// 值传递 只是将 一个变量的值 复制一份 并重新给另一个变量赋值 之后两个变量就没有关系
+ 引用传递```php// 引用传递$name1 = 89;// 在等号的右边(右值)前面加上&(取地址符,)$name2 = &$name1;$name2 = 288;echo '$name1->'.$name1.'<br>';echo '$name2->'.$name2.'<br>';// $name1->288// $name2->288// name1和name2同步更新// 引用传递 将一个变量的内存地址 赋值给另一个变量 此时两个变量指向同一个内存地址 每次修改变量值 并不是修改的内存地址 而是修改的值 所以两个变量的值都会发生变化
可变变量
$var = 'email';//$email = '1852331324154@qq.com';$$var = '1852331324154@qq.com';echo $email;//通过可变变量 用代码生成变量名使用
变量的检测和删除
规定不同的错误级别报告
// 关闭错误报告error_reporting(0);// 报告 runtime 错误error_reporting(E_ERROR | E_WARNING | E_PARSE);// 报告所有错误error_reporting(E_ALL);// 等同于 error_reporting(E_ALL);ini_set("error_reporting",E_ALL);// 报告 E_NOTICE 之外的所有错误error_reporting(E_ALL & ~E_NOTICE);
变量检测 isset();
// var_dump(isset($name)); 判断变量是否存在且值不为null//var_dump(isset($name));// 打印 bool(false) 说明变量为null$name = null;var_dump(isset($name));// 打印 bool(true) 说明变量存在且不为 nullif(isset($name)){echo '变量存在且值为:'.$name;}else{echo '变量未定义';}// 程序进入了 else 此时虽然变量 $name 存在 但它的值为 null 返回了 false
变量删除 unset()
判断值是否为空 empty()
$var = '';if(empty($var)){echo '返回true';}else{echo '返回false'}// 进入了 if 语句 因为此时 变量为空
字符串类型(string):字符串是连续的字符序列,字符串中的每个字符只占用一个字节 ‘’和””包裹的字符串有不同含义 ‘’包裹的字符串就是普通的字符串 “”包裹的字符串 PHP 将对一些特殊的字符进行解析(\n \t \r ….)
布尔值(boolean): true 或者 false(真或者是假) 0 undefined null false 都为 false 其余的都为 true
整数(integer): 整数数据类型只能包含整数。这些数据类型可以是正数或负数
浮点数(float): 浮点数是有小数点或指数形式的数字。
数组(array):数组在一个变量中存储多个值。
对象(object): 对象是存储数据和有关如何处理数据的信息的数据类型。对象的属性和方式是无序的,通过对应的键获取对应的值
资源(resource):文件资源类型
空值(null): 空值是最简单的数据类型。表示没有为该变量设置任何值,另外,空值(NULL)不区分大小写
// 基本类型(标量 单值); 存放在栈内存中$name = '盘古';$bool = false;$age = 12;$price = 12.6;// 复合类型(多值); 数据存放在堆内存中 但内存地址 存在栈内存中// 对象$obj1 = new stdClass;$obj1 -> name = '盘古';$obj1 -> age = 18;var_export($obj1);echo '<br/>';echo $obj1->name; // 打印 对象 name属性// 数组$arr = ['cl',18,'唱'];$lan = print_r($arr,true);echo '<pre>'.$lan.'</pre>'.'<br />';echo $arr[0]; // 打印数组下标为0的值// 特殊类型$nu = null;echo gettype($nu);// 打印null类型// 文件句柄$file1 = fopen("text.txt",'r');var_dump($file1);// resource(3) of type (stream) 资源类型
$one = '132';echo gettype($one);// string
设置数据类型 settype()
数据类型转换 settype()
自动转换: 是由php内部转换的 不需要主动转换
```php
$name = ‘判断’;
$age = 18;
$t = true;
$f = false;
$g = ‘5g’;
$g1 = ‘g5’;
$ph = ‘php’;
echo $name + 10,’<br />‘;
// 警告 $name 为非数值 并且不是以数字开头 php自动转换为 0; 打印结果 为 0 + 10 = 10;
echo $age + 10,’<br />‘;
// 两个数值类型相加 得到结果 18 + 10 = 28
echo $t + 10,’<br>‘;
// php内部将 布尔值类型 true 转换成 1 得到结果为 1 + 10 = 11
echo $f + 10,’<br>‘;
// php 内部将 布尔值false转换成0 得到结果 0 + 10 == 10
echo $g + 10,’<br>‘;
// 首先警告 ‘5g’为字符串 但首位是由5开头 所以将 5g 转成了5 得到结果 5 + 10 = 15
echo $g1 + 10,’<br />‘;
// 首位为 g php不会将 g5转换成数字 所以的到 0 + 10 = 10;
echo $ph . 15;
// php 字符串拼接 将15装换成’15’ ‘php’ + ‘15’ = php15
> 强制转换:1. 临时转换 (转换类型)变量 (int,string...) 但这种转换是临时转换的 变量本身并没有变化数据类型2. 永久转换 settype() settype(变量,转换类型); 这种装换会将变量类型永久改变```php// 临时转换$str1 = 'admin';var_dump((int)($str1));// int(0) 将字符串'admin' 强制转换成整数类型var_dump((bool) "");// 将空字符串转换成布尔值 falseecho (int)$name + 10,'<br />';// 将字符串先转成数值 再和数值进行运算echo (int)$name + 10,'<br />';// 使用 intval()强制转换echo intval($name) + 20,'<br />';// 打印结果 仍然是 stringecho gettype($name),'<br>';// 永久转换 settype()settype($var,$type);// $var:要转换的变量;// $type:可能要转换的数据类型 (integer,float,string,array,object,boolean,null);$foo = '5bar';settype($foo,"integer");var_dump($foo);$nums = 15;settype($nums,"string");var_dump($nums);
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号