目录
1.基本语法
1.1 PHP标记
在使用PHP进行开发时,一般先编写一个简单的HTML网页,然后将PHP代码嵌入HTML中。为了区别HTML和PHP代码,需要使用PHP标记对PHP代码进行标识
PHP7支持标准标记和短标记。
标准标记最为常用,以“<?php”开始,以“?>”结束。
<?php echo 'Hello,PHP'; ?>
1.2 注释
短标记以“<?”开始,以“?>”结束,在使用前需要将php.ini中的short_open_tag配置项设置为On,开启短标记功能后才可以使用。
单行注释以“//”开始,到该行结束或PHP结束标记之前的内容都是注释。
echo 'Hello,PHP'; //单行注释
同时,也可以使用“#”进行单行注释
echo 'Hello,PHP'; #单行注释
多行注释中可以嵌套单行注释,但是不可以嵌套多行注释。
/*
多行注释
*/
echo 'Hello,PHP';
1.3 输出语句
- echo():用于输出字符串,输出其他类型的数据会自动转换成字符串,当输出多个数据时使用“,”分隔。
echo 'true'; //输出结果:true
echo 'result=',4; //输出结果:result=4
- print():与echo用法类似,区别在于print只能输出一个数据。
print '生命在于运动'; //输出结果:生命在于运动
- print_r():可以输出任意类型数据,如字符串、数组等。
print_r('hello'); //输出结果:hello
- var_dump():可输出一个或多个任意类型数据,而且可以获取数据的类型和元素值。
var_dump(2); //输出结果int(2)
var_dump('PHP','C'); //输出结果:string(3)“PHP” String(2)“C”
1.4 标识符
定义标识符要遵守一定的规则:
- 标识符不能以数字开头。
- 标识符用作变量名时,区分大小写。
- 标识符只能由数字、字母、下划线以及0x80~0xff范围内的字符组成。
2.变量、常量和表达式
2.1 变量
PHP中变量的赋值分为两种,一个是默认的传值赋值,一个是引用赋值。
传值赋值是将“=”右边的数据赋值给左边的变量。
引用赋值需要在要复制的变量前添加“&”符号。在引用赋值后,如果其中一个变量的值发生改变,则另一个变量的值也会发生改变。
$result=&$number; //$number引用赋值给了$result,此时$result相当于$number的别名
2.2 可变变量
PHP提供了一种特殊得变量用法:可变变量,通过在变量前多添加“$”使之成为可变变量,可以将另外一个变量的值作为该变量的名称。
<?php
$a='say';
$say='hello';
$hello='Lucky';
echo '$a变量的值:',$a; //$a变量的值:say
echo '<br>';
echo '$$a变量的值:',$$a; //$$a变量的值:hello
echo '<br>';
echo '$$$a变量的值:',$$$a; //$$$a变量的值:Lucky
?>
2.3 常量
PHP通常使用define()函数或者const关键字来定义常量。
define(常量名称,常量值,是否区分大小写(默认false,表示常量名在默认情况下区分大小写))
const定义常量需要在const后面跟一个常量名称,并使用“=”进行赋值。
const R=6;
echo 'R',R; //输出结果:R=6
const P=2*R;
echo 'P',P; //输出结果:12
2.4 表达式
利用表达式可以灵活编写代码。
$a=1;
echo $a+1; //输出表达式“$a+1”的值
echo PHP_VERSION; //输出表达式“PHP_VERSION”的值
3.数据类型
3.1 常用数据类型
PHP支持3类数据类型,分别为标量类型、复合类型和特殊类型:
- 布尔型:只有true和false两个值,true和false不区分大小写。
$a=true;
$b=false;
- 整形:可用八进制数、十进制数和十六进制数表示,且前面可以加上“+”和“-”表示正负。
$a=073; //八进制数
$b=59; //十进制数
$c=0x3b; //十六进制数
- 浮点型:浮点数在程序中用来表示小数,有效位数14位,有效位数从最左边第一个不为0的数算起,直到末尾数的个数,且不包括小数点,可以用标准格式和科学计数法表示。
$num1=-4.886699;
$num2=1.234E-2; //等同于0.01234
- 字符串型:有4种表示字符串的方式,单引号、双引号、heredoc语法结构和nowdoc语法结构。
单引号字符串中的变量不会被解析,双引号字符串中的变量可以被解析。当双引号字符串中包含变量时,可能会出现变量与字符串混淆的问题。例如:当字符串“$apple”中的“$ap”是一个变量时,PHP会把“$apple”当成变量,而不会把$ap当成变量,此时可以用“{}”将$ap包裹起来,“{}”中的内容会被识别成具体的变量。
<?php
$number=10;
echo '$number=',$number; //输出结果:$number=10
echo '<br>';
echo "$number=",$number; //输出结果:10=10
?>
$ap='ooo';
$apple='llllllllllll';
echo '$apple'; //输出结果:llllllllllll
echo '{$ap}ple'; //输出结果:ooople
heredoc语法结构,开始标识符与结束标识符名称应该相同,结束标识符要单独占一行且顶格书写:
<<<开始标识符
字符串内容
结束标识符;
$a=2;
$b= <<<EOF
"zyf"$a
"zyf"
EOF;
echo $b; //结果连同双引号一起输出:"zyf"2 "zyf"
nowdoc语法结构,开始标识符与结束标识符名称应该相同,结束标识符要单独占一行且顶格书写:
<<<'开始标识符'
字符串内容
结束标识符;
$name = 'MyName';
echo <<<'EOT'
My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': x41
EOT;
//My name is "$name". I am printing some $foo->foo.
Now, I am printing some {$foo->bar[1]}.
This should not print a capital 'A': x41
3.2 数据类型转换
数据类型转换分为自动类型转换和强制类型转换。
自动类型转换情况:
- 自动转换成布尔型:当整型0、浮点型0.0、空字符串和字符串“0”转换为布尔型时会被转换成false,其他数据会被转换成true。
- 自动转换成整型:浮点型数据转换成整型直接向下取整;布尔型转换成整型,true会被转换成整型1,false会被转换成整型0。
- 自动转成成字符串型:布尔型转换成字符串型时,true会被转换成字符串“1”,false会被转换成空字符串;整型或者浮点型转换成字符串型时,直接将数字转换成字符串形式。
强制类型转换:
(目标类型)变量或数据
目标类型 | 功能描述 |
(boolean) | 强制转换成布尔型 |
(float) | 强制转换成浮点型 |
(string) | 强制转换成字符串型 |
(integer) | 强制转换成整型 |
(array) | 强制转换成数组 |
(object) | 强制转换成对象 |
4.文件包含语句
4.1 include和require
include语句和require语句都可以引入一个外部文件,二者语法类似。
//第一种写法
include '完整路径文件名';
//第二种写法
include ('完整路径文件名');
4.2 include_once和require_once
使用include_once和require_once语句包含外部文件时,PHP会检查该文件是否在程序中已经被引入。如果已经被引入,则外部文件不会被再次引用,从而避免重复引入同一文件。
<?php
for($i=1;$i<=5;$i++){
include_once '.once.php';
}
echo 'include_once语句引入外部文件的次数:',$sum; //include_once语句引入外部文件的次数:1
echo '<br>';
for($i=1;$i<=5;$i++){
include '.once.php';
}
echo 'include语句引入外部文件的次数:',$sum; //include语句引入外部文件的次数:5
?>