PHP基本语法
1. PHPINFO函数
在这个info.php文件中写入如下代码。
<?php
phpinfo();
?>
代码解读
phpinfo是一个函数(功能),这个函数(功能)会显示一个当前电脑(服务器)的详细的PHP信息。
电脑是一个很笨的东西。他需要我们人为的告诉他,代码写完了。我们用分号(;)来告诉他代码写完了。因此,只要我们写完一段代码,就需要在后面加分号(;)。
而前后两行的回车空行,是为了让代码更加好看,避免叠在一起,让人看着不舒服。其实,中间你有多少个回车空行都没有关系的,保证好看就行了。PHP的语法解释器(PHP最核心的部份)不会处理这些空行的。
注意事项
1、php的代码部份全部要用半角的英文、很多人容易写成全角的英文和符号造成PHP代码报错。
2、PHP代码的最后一行可以加也可不加分号。由于很多学习者特别是初学者经常犯一个毛病:写完一行代码不加分号。因此,容易报错。通常在公司里面规定:一行代码写完,就必须要加分号。
3、我们在写文件abc.php这个文件命名的时候,只用英文半脚(a-z A-Z 0-9 _-)这些字符来命名文件。文件命名不要用中文,不要用特殊附号,不要中间加空格,严格区分大小。
2. PHP变量与常量
PHP变量
在这个cal.php文件中写入如下代码。
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
输出结果为:
11
$ 叫作美元符,英文单词:dollar。PHP的变量必须以美元符开始。
变量的几个特点
- 必须要以 $ 开始。如变量 x 必须要写成 $x。
- 变量的首字母不能以数字开始。
- 变量的名字区分大小写。
- 变量不要用特殊符号、中文,_不算特殊符号。
- 变量命名要有意义(别写xxx,aaa,ccc这种变量名)。
变量分类:可变变量、外部变量、环境变量
可变变量举例说明
<?php
//定义了一个变量叫作 $shu 将$shu这个变量的值设为字符串的biao
$shu = 'biao';
//定义了一个【变量】$biao。将他的值设置为鼠标
$biao = '鼠标';
//$$shu 就是可变变量:在已声明的变量$shu前又加上了一个变量符
echo $$shu;
?>
输出结果为:
鼠标
外部变量举例说明
PHP的外部变量是PHP 在使用过程中规定好的一些变量。这个变量的规定是这样规定的,就这样使用。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
</head>
<body>
<!-- 这一行method 对应的值改为了post -->
<form action="reg.php" method="post">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
</body>
</html>
<?php
//$_POST后面加上中括号,将username作为字符串放在中括号里面,
//就得到了表单里面的<input type="text" name="username" /> 的值
$u = $_POST['username'];
echo $u.'<br />';
//$_POST['password'] 得到表单<input type="text" name="username" /> 的值
$passwd = $_POST['password'];
echo $passwd.'<br />';
?>
通过上面的实验我们知道了,通过$_POST这个外部变量,可以得到从表单输入的值。
全局变量名 | 功能说明 |
---|---|
$_COOKIE | 得到会话控制中cookie传值 |
$_SESSION | 得到会话控制中session的值 |
$_FILES | 得到文件上传的结果 |
$_GET | 得到get传值的结果 |
$_POST | 得到post传值的结果 |
$_REQUEST | 即能得到get的传值结果,也能得到Post传值的结果 |
环境变量举例说明
环境变量我们主要用的有 $_SERVER 和 $_ENV 两个环境变量。不过,$_ENV 逐渐被PHP的新版本给废弃了。
PHP常量
常量那就好翻译了:长久不变的值。
常量在代码中的定义、书写方式:
define(常量名,常量值);
注:
- 常量名可以小写,但是通常大写。
- 常量名可以不加引号,但是通常加上引号。
- 在字符串中调用常量的时候,必须在引号外面。
- 常量名建议只用字母和下划线。
代码如下(示例):
<?php
define('MY_NAME','PHP中文网.');
echo MY_NAME.PHP_EOL;
//下面是错误的调用方式
echo '我的名字是MY_NAME.'.PHP_EOL;
//正确的调用方式该这么写
echo '我的名字是' . MY_NAME;
?>
输出结果为:
PHP中文网.
我的名字是MY_NAME.
我的名字是PHP中文网.
一些系统规定好的内置常量
常量名 | 说明 |
---|---|
LINE | 当前所在的行 |
FILE | 当前文件在服务器的路径 |
FUNCTION | 当前函数名 |
CLASS | 当前类名 |
METHOD | 当前成员方法名 |
3. PHP注释
所谓注释,汉语解释可以为:注解。更为准确一些。因为代码是英文的、并且代码很长,时间长了人会忘。所以我们会加上注释。
注释的功能
- 对重点进行标注。
- 时间长了容易忘快速回忆,方便查找。
- 让其他人看的时候快速看懂。
- 还可以生成文档,代码写完相关的文档就写完了,提高工作效率。
- 注释、空行、回车之后的代码看起来更优美。
- 注释可用来排错。不确定代码中哪一块写错了,可以将一大段注释,确定错误区间。
- 注释中间的部份的内容,电脑不会执行它。
注释说明:
1、单行注释(只注释一行)
// 表示单行注释。
# # 号也表示单行注释,用的比较少。
2、多行注释(注释多行)
/*
多行注释 这里是注释区域代码。
*/
单行注释举例:
<?php
//声明一部iphone6手机的价格变量
$iphone6_price = 6088;
//显示输出手机价格
echo $iphone6_price;
?>
多行注释举例:
<?php
/*
作者:oldboy
时间:2048.12.23
功能:这是一个多行注释的例子
*/
?>
4. 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进制声明:
<?php
//声明变量 整数,英文 int
$int=1000;
echo $int;
?>
输出结果为:
1000
8进制声明:以0开始,后面跟0-7的整数(了解):
<?php
//8进制的取值范围最大为0-7,即0,1,2,3,4,5,6,7
$octal = 033145;
echo $octal;
?>
输出结果为:
13925
16进制声明:以0x开始,后面跟0-f的,0x的abcdef不区分大小写。(了解)
<?php
//16进制的取值范围最大为0-f,即0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
$hexadecimal = 0x6ff;
echo $hexadecimal;
?>
输出结果为:
1791
布尔型数据
所谓布尔类型,汉语翻译过来之后,更好的解释是用道家中易经的语言来进行解释,即为:
阴/阳
男/女
真/假
对/错
存在/不存在
0/1
等等.... ...
举例:
<?php
//声明一个变量(拼音)为布尔
$buer=false;
//声明一个变量(英文)
$bool=true;
?>
字符串数据
在PHP语言中声明字符串有三种方式:
- 用单引号声明
- 用双引号声明
- 用字界符声明(需要输入非常大段的字符串时使用)
单引号声明
用英文半脚的单引号,将字符串包起来
<?php
//声明字符串变量$str
$str='曾经有操蛋的爱情摆在我面前,我珍惜了。当我得到的时候才感到后悔莫及。如果非要在这段爱情前面加上一段三个字,我愿意说三个字:滚犊子!';
echo $str;
?>
双引号声明字符串
在字符串两边加双引号
<?php
//声明字符串变量$str
$str = "如果非要在滚犊子前面加上一个时间的话我愿意是:马上!";
echo $str;
?>
字界符声明
- 在变量后面的等号写三个小于号(<<<)
- 然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC
- 然后换行写上任意想写的字符
- 写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;
<?php
$dingjie = <<<ABC
如果
非要在这个滚犊子
前
面<br />
加上一段
<i>距离的话</i>
我想说:<h1>思想有多远,你就跟我滚多远!</h1>
ABC;
?>
双引号和单引号的区别
- 双引号解析变量,但是单引号不解析变量。
- 在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变量后面接上特殊字符,例如空格等分开。
- 如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
- 双引号解析转义字符,单引号不解析转义字符。但,单引号能解析 \’ 和 \
- 单引号效率高于双引号,尽可能使用单引号。
- 双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
- 神奇的字符串拼接胶水——(.)点,用来拼接字符串。
- 我们将定界符声明字符串视为双引号一样的功能来看待。
浮点型数据
所谓浮点类型,可以理解为:我们数学里面的小数。
声明方式分为两种:普通声明和科学声明(带有小数点或者科学计数法)
普通声明浮点数:
<?php
//声明变量f1的值为12121.3132
$f1 = 12121.3132;
echo $f1;
?>
输出结果为:
12121.3132
<?php
//声明变量$f2 的值为0.8873
$f2 = 0.8873;
var_dump($f2);
?>
输出结果为:
float(0.8873)
PHP数据类型之查看和判断数据类型
查看数据类型:
- gettype(传入一个变量) 能够获得变量的类型
- var_dump(传入一个变量) 输出变类型和值
<?php
//声明一个变量88.8,你可以自己多做几次实验换成其他类型看看$type输出是多少
$float = 88.8;
$type = gettype($float);
echo $type;
?>
输出结果为:
double
<?php
//多换几个类型试试
$str = '你喜欢尊上还是喜欢杀仟陌?';
var_dump($str);
?>
输出结果为:
string(39) "你喜欢尊上还是喜欢杀仟陌?"
判断数据类型
我们使用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 是否为函数
<?php
//is_* 系列函数有个特点,就是如果是这个类型就返回的是真。不是这个数据类型就返回的是假
//声明类型为假
$fo = false;
if(is_bool($fo)){
echo 'is_bool 执行真区间'.PHP_EOL;
}else{
echo 'is_bool 执行假区间'.PHP_EOL;
}
//检查未声明的变量$p是否为空,为空就执行真区间
if(is_null($p)){
echo 'is_null 执行真区间'.PHP_EOL;
}else{
echo 'is_null 执行假区间'.PHP_EOL;
}
//字符串类型的数值,看看执行的是真还是假
$str = '18.8';
if(is_numeric($str)){
echo 'is_numeric 执行真区间'.PHP_EOL;
}else{
echo 'is_numeric 执行假区间'.PHP_EOL;
}
//把sca的值换成整型、浮点、布尔和字符串试试
$sca = true;
//如果为标量,执行真区间
if(is_scalar($sca)){
echo 'is_scalar 执行真区间'.PHP_EOL;
}else{
echo 'is_scalar 执行假区间'.PHP_EOL;
}
//换成echo,is_int试试,为什么echo执行假区间呢?
if(is_callable('var_dump')){
echo 'is_callable 执行真区间'.PHP_EOL;
}else{
echo 'is_callable 执行假区间'.PHP_EOL;
}
?>
输出结果为:
is_bool 执行真区间
is_null 执行真区间
is_numeric 执行真区间
is_scalar 执行真区间
is_callable 执行真区间
5. PHP流程控制之 if else 语法
代码示例:
<?php
$t=date("H");
if ($t<"20")
{
echo "Have a good day!";
}
else
{
echo "Have a good night!";
}
?>
输出结果为:
Have a good day!
6. PHP算术运算
PHP自加自减
自加自减,就是把自己加1,或者减1。如果学习过其他编程语言。就会发现,此处的用法又是计算机里面的一个规定。可以这样用,用起来更加简洁。
符号 | 说明 |
---|---|
$x++ | 先赋值后加 |
$x- - | 先赋值后减 |
++$x | 先加后赋值 |
- -$x | 先减后赋值 |
<?php
$x = 5;
//先赋值后加:即先将$x的值赋值给$y。$x的值为5,所以将$x的值赋值给$y。$y也为5
$y = $x++;
//$x的结果输出为6,因为赋值给$y后,$x自己又把自己进行了+1操作。所以,$x的结果为6
echo $y.PHP_EOL;
echo $x;
?>
输出结果为:
5
6
PHP比较运算符
<?php
$x = 5;
$y = 6;
//因为5大于6不成立,所以为错的。即为false执行了假区间。
if($x > $y){
//真区间
echo '变量x大于变量y,成立。';
}else{
//假区间
echo '变量x大于变量y,不成立。';
}
?>
输出结果为:
变量x大于变量y,不成立。
PHP逻辑运算
逻辑运算符比较简单,是我们人类进行逻辑思考时的一种方式。
符号 | 说明 |
---|---|
&& | 逻辑与 |
|| | 逻辑或 |
! | 逻辑非 |
xor | 逻辑异或 |
^ | 同上 |
代码示例:
<?php
$x = true;
$y = false;
//逻辑与(并且),要求两个都为true才执行真区间,所以代码中执行假区间
if($x && $y){
echo '$x && $y 执行了真区间'.PHP_EOL;
}else{
echo '$x && $y 执行了假区间'.PHP_EOL;
}
//逻辑或,要求两个有一个为真执行真区间,所以代码中执行真区间
if($x || $y){
echo '$x || $y 执行了真区间'.PHP_EOL;
}else{
echo '$x || $y 执行了假区间'.PHP_EOL;
}
//逻辑异或,要求两个相异为true,相同为false,所以代码中执行真区间
if($x xor $y){
echo '$x xor $y 执行了真区间'.PHP_EOL;
}else{
echo '$x xor $y 执行了假区间'.PHP_EOL;
}
?>
输出结果为:
$x && $y 执行了假区间
$x || $y 执行了真区间
$x xor $y 执行了真区间
PHP位运算
<?php
//$x二进制值为:
$x = 5;
//$y二进制值为:
$y = 8;
//结果为13
echo $x ^ $y;
?>
输出结果为:
13
变量 | 二进制 |
---|---|
$x | 0101 |
$y | 1000 |
异或结果 | 1101 |
异或解释:如果x,y两个值不相同,则异或结果为1。如果x,y两个值相同,异或结果为0。
由此可推1101为
x
和
x和
x和y异或出来的结果,1101用二进制转10进制工具转换后的结果就为13。
PHP三元运算符和其它运算符
三元运算符,相当于是if…else结构。不过三元运算符的写法更加简洁。
代码示例:
<?php
$x = true;
$x ? $y = 5 : $y = 6;
//输出5
echo $y;
?>
输出结果为:
5