批改状态:合格
老师批语:写的很好!继续加油!
PHP由一对标签和中间代码段组成,示例如下:
<?php//代码段?>
<?php:表示起始标签
?>:表示结束标签
//:表示单行注释
#:也可以表示单行注释
/*...*/:表示多行注释
;:表示语句分隔符或语句的结束
注:在单独的纯文本PHP文件中,推荐不要加结束标签,因为这样可以避免被引用时出错,出现一些不可见字符,但是在PHP混编时,比如和HTML写在一个文件中时,就必须加上结束标签了。
接下来,看一个小小的示例:
<?php//代码段function sum ( $a , $b ) {return $a + $b;}//打印输出结果echo '两数相加之和是:'.sum ( 10 , 5.6 );
echo:支持同时打印多个变量,HTML标签,单一或多个字符串,没有返回值,不能打印数据类型
print:它和echo的区别在于只能打印单一变量,但有返回值
var_dump():能够打印变量的完整信息,即:变量的类型,变量的长度,变量的数值
var_export():返回一个变量的字符串表示(源代码)
print_r():以人性化方式打印,通常用于复合数据类型
示例如下:
<?php//php打印输出方式$hello = 'Hello';$world = 'World';//echo 可打印多个变量,无返回值echo $hello,$world,'<br>';echo '<span style="color:red;">'.$world.'</span>';echo '<hr>';//print 打印单一变量,有返回值print $hello.$world.'<br>';echo print $world;//返回值为1echo '<hr>';//var_dump() 完整显示变量信息var_dump($hello);echo '<br>';var_dump(666);echo '<hr>';//var_export() 返回字符串表示(源代码)var_export($world);echo '<br>';var_export($hello.$world);echo '<hr>';//print_r() 以人性化方式打印,支持第二个参数,常用于复合类型数据$arr = ['fish','ball','film'];echo print_r($arr,true),'<br>';//结合html的pre标签,可以原样输出echo '<pre>'.print_r($arr,true).'</pre>' ;

变量以 $ 符号开头,其后是变量的名称
变量要区分大小写
变量名称只能包含字母数字字符和下划线,且不能以数字开头
命名时一定要做到望文生义,不要乱取名,那样无意义
扩展知识:JS中变量和函数都要区分大小写,但在PHP中,变量区分大小写,函数、方法名、类名都是不区分的。
示例如下:
<?php// 重要知识点:// 1. 变量是临时储存数据的容器// 2. 变量是实现数据复用的手段//尽量不要用$a这种方式命名。无意义$a = 'Jack';$name = 'Alice';echo $a ,'<br>', $name ,'<hr>';//变量名只能包含数字,下划线,字母,且不能以数字开头$_age = 21;$name2 = 'Peter';// $2name = 'Lisa'; 这种命名会报错echo $name2.'的年龄是:'.$_age.'<hr>';$tel = 'apple';$TEL = 'honor';//变量名不区分大小写echo $tel ,'<br>', $TEL;echo '<hr>';//函数名、方法名、类名都不区分大小写function show(){echo '我是一个函数','<br>';}show();//尽量这样使用SHOW();

变量的类型随值的变化而动态变化,示例如下:
<?php//变量的动态:变量的类型随值而变化$num = 123;var_dump($num);echo '<br>';$num = '456';var_dump($num);

值传递:这是默认的方式,直接将等号右边的变量的值赋值给左边变量
引用传递:在等号的右值前加“&”(取地址符),这时会将右边变量的内存地址传给左边变量,不再是单纯的赋值操作
示例如下:
<?php//传递分为值传递和引用传递两种方式// 1.值传递(默认方式)$num1 = 100;$num2 = $num1;echo $num1.'<hr>';// 2.引用传递:将内存地址传递过去// 在等号右边加上取地址符“&”$num3 = &$num1;$num3 = 200;echo $num1;

变量名可以动态的创建,示例如下:
<?php//可变变量:一个变量的变量名可以动态的设置和使用$str = 'hello';// $hello = 'world';变量名和上个变量的值是一样的$$str = 'world';echo "{$str} {$$str}";echo '<hr>';echo "{$str} {$hello}";//输出结果一样

isset():检测变量,当变量存在且值不为NULL的时候才是ture
unset():删除变量,没有返回值,直接执行
empty():变量为空时,返回true,多用于表单元素检测
扩展知识:error_reporting(E_ALL),在变量前加上这个函数,打开所有报错,方便调试
示例如下:
<?php/*当变量为定义时,不会输出也不会报错,在调试的时候,通常需要在查看这个变量之前打开报错,需要用到一个函数:error_reporting(E_ALL)*///打开所有报错error_reporting(E_ALL);//使用这个函数之后就会有报错功能了// echo $name;//变量检测:isset(),变量不为空且值不为null时才是true$name = '孙悟空';// $name = null;if ( isset($name) ) { echo 'name:'. $name;}else { echo '没有定义此变量';}echo '<hr>';//删除变量:unset(),没有返回值,直接执行unset($name);if ( isset($name) ) { echo 'name:'. $name;}else { echo '没有定义此变量';}echo '<hr>';// empty():检测变量是否为空,多用于表单元素检测$sex = '';if( empty($sex) ){ var_dump($sex); }

数据类型分为:基本类型、复合类型、特殊类型
基本类型分:字符串类型、数值类型、布尔类型
复合类型分:数组、对象
特殊类型分:NULL、资源
示例如下:
<?php//数据类型:基本数据、复合数据、特殊数据// 1. 基本数据类型,又称标量类型或单值类型// 字符串$username = 'Peter';var_dump($username);echo '<hr>';// 数值$num1 = 123;$num2 = 1.5;var_dump($num1);var_dump($num2);echo '<hr>';// 布尔$isHappy = true;var_dump($isHappy);echo '<hr>';// 2. 复合数据类型,又称多值类型// 数组$cars = ['BMW','Volvo','LAND-ROVER'];var_dump($cars);echo '<br>';// 原样输出echo '<pre>'.print_r($cars,true).'</pre>','<hr>';// 对象:是属性和方法的无序集合$obj = new stdClass;$obj -> name = 'Mark';$obj -> age = 33;$obj -> hobby = 'ball';echo $obj -> hobby,'<hr>';// 3. 特殊类型// NULL$null = null;var_dump($null);echo '<hr>';// 资源类型$resourse = fopen('1.PHP的组成.php','r');var_dump($resourse);

自动转换:自动转换是由php系统偷偷进行的,不需要用户参与
强制转换:在需要转换的变量前加上数据类型或使用转换函数
注:以上转换都是属于临时转换,只有在运算过程中临时转换一下,进行运算操作,其原始数据类型还是不变,如果要永久转换,需要用到一个函数:settype(值1,值2),值1表示需要转换的变量,值2表示需要转换的类型
示例如下:
<?php// 自动转换,偷偷的进行,不需要用户参与$num = 100;$str1 = '100per';$str2 = 'fam200';$bool1 = true;$bool2 = false;$null = null;echo $num + $str1,'<hr>'; // 从字符串第一个字符开始解析,遇到数字取出来,100,相加得200echo $num + $str2,'<hr>'; // 从字符串第一个字符开始解析,没有遇到数字,直接停止,相当于为0echo $num + $bool1,'<hr>'; // 布尔值true,相当于1echo $num + $bool2,'<hr>'; // 布尔值false,相当于0echo $num + $null,'<hr>'; // NULL类型,也相当于0echo $str1.$num,'<hr>'; // .号表示字符串拼接操作,会将100转换为'100'echo $bool1.$bool2,'<hr>';echo $bool1.$str2,'<hr>';// 强制转换 :在变量前加上变量类型或使用转换函数// 此时,没有警告框弹出了,echo $num + (int) $str2,'<hr>';// 类似的,使用转换函数,推荐使用此方法echo $num + intval($str2),'<hr>';// 转换后,虽然能运算,但是数据类型是不变的,还是stringecho gettype($str2),'<hr>';// 永久转换,使用settype()函数,第一个值是变量名,第二个值是变量类型settype($str2,'int');echo gettype($str2);/*扩展知识:允许转换的PHP数据类型有:1.(int)、(integer):转换成整型2.(float)、(double)、(real):转换成浮点型3.(string):转换成字符串4.(bool)、(boolean):转换成布尔类型5.(array):转换成数组6.(object):转换成对象PHP数据类型转换函数:1. intval() 转为整型2. floatval() 转为浮点型3. strval() 转为字符串通用类型转换函数:settype(mixed var,string type)此函数可将数据类型永久转换*/

今天学习了PHP相关的一些基础知识,了解了PHP代码的组成部分,以及常用的打印输出方式。另外,还学习了PHP变量相关知识和数据类型。除了需要去记忆一些基本概念(比如:什么情况下使用怎样的打印输出方式),还要学会动态变量如何操作以及变量类型如何转换等。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号