PHP的代码基础与其他语言相同,在之前的文章里都有提及,接下来主要提到的时PHP语言存在的特性。
PHP是服务器端脚本语言,是网站的后台。同时,PHP是一种弱类型语言。这代表着PHP在拥有着与C、C++等语言的共同特性时,不具有其他语言的特定性。即在PHP中,存在基本函数、变量和操作语句块,但变量的声明不需声明变量类型,在PHP中,声明变量类型需要用$。
PHP的第二个特性就是输出语句。在PHP中多用echo进行输出,echo语句可以同时输出多个字符串,其他的输出函数有print和print_r()。
在PHP中,用GET发送的信息会显示在地址栏内,而用POST发送的信息不会显示在地址栏内,也不会限制发送信息的量。
在PHP中,同样存在全局变量和局部变量,存在全局作用域和局部作用域。不同的是,在PHP中调用全局变量需要用到global关键字,例如
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
在这段代码中,我们在myTest函数中调用了全局变量x、y,并在函数中对y的值进行处理,此时我们就用到了global关键字调用xy变量。同样,我们也可以定义一个GLOBALS数组
$GLOBALS[index]
index用于保存变量的名称。GLABALS数组可以在函数内部访问,也可用于修改全局变量。
在PHP中定义函数时,当一个函数完成后,他的所有局部变量都会被删除,在需要某个局部变量不被删除时,就需要在声明该变量的时候使用static关键字:
<?php
function myTest(){
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest();
myTest();
myTest();
?>
这段代码的运行结果是012
在这段代码中,如果不使用static关键字,每次myTest函数运行时,x的初值都为0。在使用static关键字后,myTest函数运行完成时,变量x不会被删除,而会记录上一次函数运行结束时的值,继续在下一次函数中运用。因此,在整段代码运行结束时,输出的结果为012
,变量x的值为3
。
PHP中也存在相同的数据类型,特殊的,在PHP中,bool变量多用true和false表示,只有在弱比较和基本函数语句中可以用0和1来表示。在PHP中,对象作为一种数据类型也可用于存储数据,代码示例如下:
<?php
class Car{
var $color;
function __construct($color="green") { $this->color = $color;}
function what_color() { return $this->color;}
}
function print_vars($obj) {
foreach (get_object_vars($obj) as $prop => $val) { echo "\t$prop = $val\n";}
}
// 实例一个对象
$herbie = new Car("white");
// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);
?>
这段代码的运行结果为
herbie: Properties color = white
在这段代码中,声明color变量使用的函数是var,这与Pascal语言相同,而this是指向当前对象实例的指针,不指向任何其他对象或类。输出语句中的\t、\n分别表示跳格(类似于计算机中的TAB)和换行。
在PHP中,还有一种特殊的运算符规则——并置,表示为a.b
作用为连接两个字符串。同样,在赋值运算符中也存在并置运算,表示为$x.=
作用依然是连接两个字符串
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; //输出“Hello world!”
$x="Hello";
$x .= " world!";
echo $x; //输出“Hello world!”
?>
在PHP中,同样存在递增递减运算符和预递增预递减运算符,递增递减和预递增预递减的区别为,递增递减先返回变量再+1,预递增预递减先+1再返回变量。
同样,在PHP中,数组也存在运算,存在合并运算(+)、比较运算(==相等、===恒等、!= <>不相等和!==不恒等)。
在PHP7+中,还存在组合比较符(太空船比较符),组合比较符可以轻松实现两变量的比较,不限于数值类数据。$c = $a <=> $b;
具体作用为:
- 如果 a > a> a>b,则$c的值为1。
- 如果 a = = a== a==b,则$c的值为0。
- 如果
a
<
a<
a<b,则$c的值为-1。
代码实例如下:
<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
在运算符中,同样也存在优先级比较如图
在此之外,PHP也存在括号优先运算的规则。