php基本语法元素
1.1.3.1 从phpinfo涵数学习(简单举例说明)
在这个abc.php文件中写入如下代码。
<?php
phpinfo();
?>
你可以在浏览器地址栏里面,输入你的服务器地址。我们当前是以自己的电脑作为网页服务器来使用的,你可以在地址中输入:
代码解读:
phpinfo是一个函数(功能),这个函数(功能)会显示一个当前电脑(服务器)的详细的PHP信息。
电脑是一个很笨的东西。他需要我们人为的告诉他,代码写完了。我们用分号(;)来告诉他代码写完了。因此,只要我们写完一段代码,就需要在后面加分号(;)。
而前后两行的回车空行,是为了让代码更加好看,避免叠在一起,让人看着不舒服。其实,中间你有多少个回车空行都没有关系的,保证好看就行了。PHP的语法解释器(PHP最核心的部份)不会处理这些空行的。
注意事项:
1、php的代码部份全部要用半角的英文、很多人容易写成全角的英文和符号造成PHP代码报错。
2、PHP代码的最后一行可以加也可不加分号。由于很多学习者特别是初学者经常犯一个毛病:写完一行代码不加分号。因此,容易报错。通常在公司里面规定:一行代码写完,就必须要加分号。
3、我们在写文件abc.php这个文件命名的时候,只用英文半脚(a-z A-Z 0-9 _-)这些字符来命名文件。文件命名不要用中文,不要用特殊附号,不要中间加空格,严格区分大小。
1.1.3.2 php变量与常量
一、PHP变量
在这个abc.php文件中写入如下代码。
<?php $iphone6 = 5880; $iphone6plus = 6088; echo $iphone6 + $iphone6plus; // echo 是在PHP里面最常用的一个输出、显示功能的命令。 ?>
$ 叫作美元符,英文单词:dollar。PHP的变量必须以美元符开始。说明搞PHP有“钱”途。
变量的几个特点:
1.必须要以$开始。如变量x必须要写成$x 2.变量的首字母不能以数字开始 3.变量的名字区分大小写 4.变量不要用特殊符号、中文,_不算特殊符号 5.变量命名要有意义(别写xxx,aaa,ccc这种 变量名)
变量分类:可变变量、外部变量、环境变量
1、可变变量举例说明:
<?php //定义了一个变量叫作 $shu 将$shu这个变量的值设为字符串的biao $shu = 'biao'; //定义了一个【变量】$biao。将他的值设置为鼠标 $biao = '鼠标'; //$$shu 就是可变变量:在已声明的变量$shu前又加上了一个变量符 echo $$shu; ?>
2、外部变量举例说明:
PHP的外部变量是PHP 在使用过程中规定好的一些变量(主要用于读取文件之外的变量值)。这个变量的规定是这样规定的,就这样使用。
<html> <head> </head> <body> <!-- 这一行method 对应的值改为了post --> <form action="reg.php" method="post"> <input type="text" name="username" /> <input type="password" name="pwd" /> <input type="submit" value="提交" /> </form> </body> </html>
<?php //$_POST后面加上中括号,将username作为字符串放在中括号里面,就得到了表单里面的<input type="text" name="username" /> 的值 $u = $_POST['username']; echo $u.'<br />'; //$_POST['pwd'] 得到表单<input type="text" name="username" /> 的值 $passwd = $_POST['pwd']; echo $passwd.'<br />'; ?>
通过上面的实验我们知道了,通过$_POST这个外部变量,可以得到从表单输入的值。
另外,我们总结一些外部变量,要求知识点的学习级别:了解含义,默写这个单词的写法和作用。
全局变量名 |
功能说明 |
$_COOKIE |
得到会话控制中cookie传值 |
$_SESSION |
得到会话控制中session的值 |
$_FILES |
得到文件上传的结果 |
$_GET |
得到get传值的结果 |
$_POST |
得到post传值的结果 |
$_REQUEST |
即能得到get的传值结果,也能得到Post传值的结果 |
3、环境变量举例说明:
环境变量我们主要用的有$_SERVER和$_ENV两个环境变量。不过,$_ENV逐渐被PHP的新版本给废弃了。
<?php
phpinfo();
?>
其它环境变量:
$_SERVER["REQUEST_METHOD"] |
请求当前PHP页面的方法 |
$_SERVER["REQUEST_URI"] |
请求的URI |
$_SERVER["SERVER_SOFTWARE"] |
用的是哪一种服务器 |
$_SERVER["REMOTE_ADDR"] |
客户的IP地址 |
$_SERVER["SERVER_ADDR"] |
当前服务器的IP地址 |
$_SERVER["SCRIPT_FILENAME"] |
主前请求文件的路径 |
$_SERVER["HTTP_USER_AGENT"] |
当前访问这个网址的电脑和浏览器的情况 |
$_SERVER["HTTP_REFERER"] |
上级来源(用户从哪个地址进入当前网页的) |
$_SERVER["REQUEST_TIME"] |
当前的时间 |
二、PHP常量
常量那就好翻译了:长久不变的值。
常量在代码中的定义、书写方式:
define(常量名,常量值)
注:
1.常量名可以小写,但是通常大写
2.常量名可以不加引号,但是通常加上引号。
3.在字符串中调用常量的时候,必须在引号外面且用.号与其他字符分开。不需要加$符号
4.常量名建议只用字母和下划线
我们用代码来实验一下:
<?php define('MY_NAME','PHP中文网'); echo MY_NAME; //下面是错误的调用方式 echo '我的名字是MY_NAME'; //正确的调用方式该这么写 echo '我的名字是' . MY_NAME; ?>
此外,系统还为我们准备了一些内置的常量。这些常量都是规定好的。我们先熟悉几个,还有更多的系统常量我们学习完上册,入门后再慢慢的增加和学习。
常量名 |
说明 |
LINE(line) |
当前所在的行 |
FILE |
当前文件在服务器的路径 |
FUNCTIOIN |
当前函数名 |
CLASS |
当前类名 |
METHOD |
当前成员方法名 |
PHP_OS |
PHP运行的操作系统 |
PHP_VERSION |
当前PHP的版本 |
TRAIT |
Trait 的名字,php5.4新加 |
DIR |
文件所在的目录 |
NAMESPACE |
当前命名空间的名称(区分大小写) |
1.1.3.3 php注释
所谓注释,汉语解释可以为:注解。更为准确一些。因为代码是英文的、并且代码很长,时间长了人会忘。所以我们会加上注释。
注释的功能有很多:
1.对重点进行标注
2.时间长了容易忘快速回忆,方便查找
3.让其他人看的时候快速看懂
4.还可以生成文档,代码写完相关的文档就写完了,提高工作效率
5.注释、空行、回车之后的代码看起来更优美
6.注释可用来排错。不确定代码中哪一块写错了,可以将一大段注释,确定错误区间
7.注释中间的部份的内容,电脑不会执行它
接下来我们来说PHP的注释,注释分别:
1、单行注释(只注释一行)
// 表示单行注释 ##号也表示单行注释,用的比较少
2、多行注释(注释多行)
/* 多行注释 这里是注释区域代码 */
多行和单行注释举例:
<?php /* 作者:大柱 时间:2020/9/16 内容:php常量与备注练习 */ define('MY_NAME','网络安全'); echo '我的班级是_'.MY_NAME.'_同学'.'<br />' ; //echo常量时,常量两边需要用.隔开(不同字段之间需要用.号隔开,以表示开始或者结束)单行备注注释也可使用#号 $z = 'dazhu'; echo 'my name is'.$z.'同学'.'<br />'; ?>
2.1.3.3 php数据类型
数据类型:就是对数据分类的一个划分而已,例如:
哺乳动物
人、猫、马、鸭嘴兽....等等
蔬菜
西红柿、波菜、茄子....等等
水果
西瓜、桃子、苹果....等等
PHP中一共有八种数据类型,包括4中标量数据类型,即boolean(布尔类型)integer(整型),float/double(浮点型)和string(字符串型)两种复合数据类型,即array(数组)和object(对象), 两种特殊的数据类型:即resource(资源)与 null (无,空白);
数据类型 |
描述 |
boolean(布尔型) |
布尔型是最简单的数据类型,只有两个值 false(假) 和true(真) |
string(字符串型) |
字符串就是连续的字符序列,如 ehco "string"; |
integer(整型) |
整型数据类型只能包含整数,这些数据类型可以是负数或者正数 |
float(浮点型) |
浮点型类型用于存储数字,和整型不同的是浮点型可以有小数点 |
array(数组) |
一组不同类型的集合 |
object(对象) |
对象是一个实力,使用new命令创建一个对象 |
resource(资源) |
资源是一种特殊的变量,保存在外部资源的一个应用,资源是通过函数来进行建立的 |
null( 空白) |
特殊的值,表示变量没有值,任何变量的初始值都是null |
一、整型类型
整型——整数也,英文称之:integer。英文简写:int
整型分为:
10进行
8进制 (了解,基本不用)
16进制(了解,基本不用)
整型(整数)在计算机里面是有最大值和最小值范围的。
【了解知识点,开发中不常用】大家经常听说32位计算机,也就是32位计算机一次运算处理的最大范围为-232至232-1。
64位计算机呢?——
10进制声明:
//为了方便大家记忆和前期学习,英文不好的朋友也可用拼音来声明变量。以后再用英文来声明变量也无所谓
//声明变量 整数,英文 int
8进制声明:以0开始,后面跟0-7的整数(了解知识点)
//8进制的取值范围最大为0-7,即0,1,2,3,4,5,6,7
//16进制声明:以0x开始,后面跟0-f的,0x的abcdef不区分大小写。(了解知识点)
//16进制的取值范围最大为0-f,即0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
例如:
<?php $number = 0x35ff; echo $number.'<br />'; $bajinzhi = 01345135; echo $bajinzhi.'<br />'; $shijinzhi = 12315; echo $shijinzhi.'<br />'; ?>
//运行后会自动转化为十进制
二、布尔型数据
所谓布尔类型,汉语翻译过来之后,更好的解释是用道家中易经的语言来进行解释,即为:
阴/阳
男/女
真/假
对/错
存在/不存在
0/1
等等.... ...
举例:
<?php //声明一个变量(拼音)为布尔 $buer=true; //声明一个变量(英文) $bool=false; ?>
<?php $date = rand(0,23); echo "到达时间为 $date 点 ";
//if()就是一种典型的bool类型。要么为真——执行,否则执行备选项。 if ($date >= 6 && $date <10){ echo '去酒店泡澡'; }elseif($date >= 10 && $date <18){ echo '吃神户牛肉'; }elseif($date >= 18 && $date <22){ echo '找个朋友聊聊天'; }else{ echo'睡觉'; } ?>
三、字符串数据
在PHP语言中声明字符串有三种方式:
1.用单引号声明
2.用双引号声明
3.用字界符声明(需要输入非常大段的字符串时使用)
<?php /* '' "" 字界符 */ $z = '_大柱_'; $zifu='曾静有份操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及,如果非要在这段爱情前面加上三个字,我想说:滚犊子'; //正确表达方式,''所见即所得.不支持变量和转义符等但是支持转义符 echo $zifu.'<br />'; $zifu2="$z 曾静有份操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及,如果非要在这段爱情前面加上三个字,我想说:滚犊子"; //正确表达方式,双引号中允许解析变量但不会解析其他内容。变量后加“空格”或者用{}将$后的变量内容括起来,以区分其他内容。 echo $zifu2.'<br />'; $zifu3="$z 曾静有份操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及,如果非要在这段爱情前面加上三个字,我想说:滚犊子"; //正确表达方式,双引号中 允许解析以及转义符 变量但不会解析其他内容。变量后加“空格”或者用{}将$后的变量内容括起来,以区分其他内容。 echo $zifu3.'<br />'; $zifu_zijiefu = <<<ABC 如果 非要在这个滚犊子 前 面<br /> 加上一段 <i> 距离的话</i> 我想说,<h1>思想有多远,你就给我滚多远</h1> ABC; //字界符后跟一段内容。 echo $zifu_zijiefu.'<br />'; $type1 = var_dump($zifu); echo $type1.'<br />'; $type = gettype($z); echo $type.'<br />'; $zifu4=曾静有份操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及,如果非要在这段爱情前面加上三个字,我想说:滚犊子; //错误书写方式,所有文本内容都会被php当做作用字符识别而非字符串 echo $zifu3.'<br />'; ?>
那双引号和单引号有什么区别呢?
1.双引号解析变量,但是单引号不解析变量。 2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变量后面接上特殊字符,例如空格等分开。 3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。 4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析' 和 5.单引号效率高于双引号,尽可能使用单引号 6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。 7.神奇的字符串拼接胶水——(.)点,用来拼接字符串。 8.我们将定界符声明字符串视为双引号一样的功能来看待。
四、浮点型数据
所谓浮点类型,可以理解为:我们数学里面的小数。
声明方式分为两种:普通声明和科学声明
普通声明浮点数:
案例1:
<?php //声明变量fudian的值为12121.3132 $fudian = 12121.3132; echo $fudian; ?>
案例2:
<?php //声明变量$fl 的值为0.8873 $fl = 0.8873; var_dump($fl); ?>
五、php数据类型之查看和判断数据类型
查看数据类型
1.gettype(传入一个变量) 能够获得变量的类型
2.var_dump(传入一个变量) 输出变类型和值
<?php $shu = array(213,012,12.3,true,'天王盖地虎,小鸡炖蘑菇'); echo'<br />'; var_dump($shu); echo'<br />'; $type=gettype($shu); echo $type.'<br />'; echo'<br />'; echo count($shu); ?>
判断数据类型
我们使用is_* 系列函数。 is_types这一系列的函数,来进行判断某个东西是不是某个类型。如果是这个类型返回真,不是这个类型返回假。
is_int 是否为整型
is_bool 是否为布尔
is_float 是否是浮点
is_string 是否是字符串
is_array 是否是数组
is_object 是否是对象
is_null 是否为空
is_resource 是否为资源
is_scalar 是否为标量
is_numeric 是否为数值类型
is_callable 是否为函数
//is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假$fo = false;
if(is_bool($fo)){ echo '执行真区间'; }else{ echo '执行假区间'; }
、
//执行后结果显示 执行假区间
<?php $int = 123445; if (is_int($int)){ echo '真'; }else{ echo '假'; } echo '<br />'; $int2 = '大柱'; if (is_int($int2)){ echo 'true'; }else{ echo 'false'; } echo '<br />'; ?>
//检查未声明的变量$p是否为空,为空就执行真区间
if(is_null($p)){ echo '执行真区间'; }else{ echo '没有这个变量'; } echo "<br/>";
//字符串类型的数值,看看执行的是真还是假
$str = '18.8'; if(is_numeric($str)){ echo '执行真区间'; }else{ echo '执行假区间'; } echo "<br/>";
//把sca的值换成整型、浮点、布尔和字符串试试
$sca = true; //如果为标量,执行真区间 if(is_scalar($sca)){ echo '执行真区间'; }else{ echo '执行假区间'; } echo "<br/>";
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable('var_dump')){ echo '执行真区间'; }else{ echo '执行假区间'; } ?>
1.1.3.3 php流程控制之if else语法
<?php $date = rand(0,23); echo "到达时间为 $date 点 "; if ($date >= 6 && $date <10){ echo '去酒店泡澡'; }elseif($date >= 10 && $date <18){ echo '吃神户牛肉'; }elseif($date >= 18 && $date <22){ echo '找个朋友聊聊天'; }else{ echo'睡觉'; } ?>
//if...else执行结束,后续代码
//if(){}else{}如果...就...否则...()内是bool型结果{}内是判断后执行动作。
//elseif 否则,如果...
//else 否则
1.1.3.3 php算术运算
算数运算符,就是大家小学所学绝大多数知识:
<?php $x = 5; $y = 6; //5+6为11 echo $x + $y ?>
一、php自加自减
自加自减,就是把自己加1,或者减1。如果你学习过其他编程语言。你会发现,此处的用法又是计算机里面的一个规定。可以这样用,用起来更加简洁。
上面的用法其实挺简单的,按照上面的例子。我们分成步骤去,按过程去判断即可。
<?php $nu1=3; $nu2=5; $nu3=$nu1++;//先赋值,后运算 echo $nu3.'<br />';//3 echo $nu1.'<br />';//4(自加1) $nu4=++$nu1;//先运算,后赋值 echo $nu4.'<br />';//5(在上一次$1运算结果基础上进行) echo $nu1.'<br />';//5 //自减同理 ?>
二、php比较运算符
比较运算符,在大家小学的时候就学了很多,有:
<?php $x = 5; $y = 6; //因为5大于6不成立,所以为错的。即为false执行了假区间 if($x > $y){ //真区间 echo '变量x 大于 变量y,成立'; }else{ //假区间 echo '变量x 大于 变量y,不成立'; } ?>
三、php逻辑运算
逻辑运算符比较简单,是我们人类进行逻辑思考时的一种方式。
<?php $x = true; $y = false; //逻辑与(并且),要求两个都为true才执行真区间,所以代码中执行假区间 if($x && $y){ echo '执行了真区间'; }else{ echo '执行了假区间'; } ?>
四、php^位运算
<?php //$x二进制值为: $x = 5; //$y二进制值为: $y = 8; //结果为13 echo $x ^ $y; ?>
异或解释:如果x,y两个值不相同,则异或结果为1。如果x,y两个值相同,异或结果为0。
由此可推1101为$x和$y异或出来的结果,1101用二进制转10进制工具转换后的结果就为13。
五、php三元运算符和其它运算符
三元运算符,相当于是if...else结构。不过三元运算符的写法更加简洁,语法格式如下:
<?php $x = true; $x ? $y = 5 : $y = 6; //输出5 echo $y;//输出为1 ?> <?php echo '<pre>'; echo `ipconfig`; echo '</pre>';