PHP变量
变量是存储信息的容器:
实例:
<?php
$x=5;
$y=6;
$z=$x+$y;
echo $z;
?>
11
- PHP 变量可用于保存值和表达。
变量规则:
- 变量以 $ 符号开头,其后是变量的名称
- 变量名称必须以字母或下划线开头
- 变量名称不能以数字开头
- 变量名称只能包含字母数字字符和下划线(A-z、0-9 以及 _)
- 变量名称对大小写敏感(Y 是两个不同的变量)
创建变量
- PHP没有创建变量的命令,变量会在首次为其赋值时被创建
注:如果为变量赋的值是文本,应用引号包围
在php中,php会根据其值,自动把变量转换为正确的数据类型。
变量作用域
在 PHP 中,可以在脚本的任意位置对变量进行声明。
变量的作用域指的是变量能够被引用/使用的那部分脚本。
PHP 有三种不同的变量作用域:
- local(局部)
- global(全局)
- static(静态)
Local和Llobal作用域
函数之外声明的变量拥有 Global 作用域,只能在函数以外进行访问。
函数内部声明的变量拥有 Local 作用域,只能在函数内部进行访问。
- 可以在不同的函数中创建名称相同的局部变量,因为局部变量只能被在其中创建它的函数识别。
Global关键词
global关键词用于在函数内访问全局变量。
例:
<?php
$x=5;
$y=10;
function myTest() {
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y;
?>
输出结果
15
PHP 同时在名为 $GLOBALS[index] 的数组中存储了所有的全局变量。下标存有变量名。这个数组在函数内也可以访问,并能够用于直接更新全局变量。
上面的例子还可以写为:
<?php
$x=5;
$y=10;
function myTest() {
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y;
?>
static关键词
当一个函数完成时,它的变量通常都会被删除。当不需要删除某个局部变量时,可以在第一次声明变量时使用static关键词。
例:
<?php
function myTest() {
static $x=0;
echo $x;
$x++;
}
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
echo "<br>";
myTest();
?>
输出结果
0
1
2
3
4
然后,每当函数被调用时,这个变量所存储的信息都是函数最后一次被调用时所包含的信息。
- 注:该变量仍然是函数的局部变量。
PHP echo 和 print 语句
echo 和 print 之间的差异:
- echo - 能够输出一个以上的字符串
- print - 只能输出一个字符串,并始终返回 1
提示:echo 比 print 稍快,因为它不返回任何值。
print和echo 均是语言结构,有无括号均可使用:print 或 print(),echo和echo()
- 使用print 和echo命令来显示字符串和变量的格式完全相同。
PHP 数据类型
字符串、整数、浮点数、逻辑、数组、对象、NULL
字符串
字符串可以是引号内的任何文本,可以使用单引号或双引号。
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
整数
整数规则:
- 整数必须有至少一个数字(0-9)
- 整数不能包含逗号或空格
- 整数不能有小数点
- 整数正负均可
- 可以用三种格式规定整数:十进制、十六进制(前缀是 0x)或八进制(前缀是 0)
例:
var_dump() 会返回变量的数据类型和值
<?php
$x = 5985; 正数
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
输出结果
int(5985)
int(-345)
int(140)
int(39)
浮点数
浮点数是有小数点或指数形式的数字。
例:
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
输出结果
float(10.365)
float(2400)
float(8.0E-5)
数组
数组在一个变量中储存多个值
例:
<?php
$cars=array("Volvo","BMW","SAAB");
var_dump($cars);
?>
输出结果
array(3) { [0]=> string(5) "Volvo" [1]=> string(3) "BMW" [2]=> string(4) "SAAB" }
对象
对象是存储数据类型和有关如何处理数据的信息的数据类型。
在php中,必须明确的声明对象。首先,必须声明对象的类,对此,使用class关键词。然后在对象类中定义数据类型,在该类的实例中,然后使用此数据类型。
例:
<?php
class Car
{
var $color;
function Car($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
function print_vars($obj) {
foreach (get_object_vars($obj) as $prop => $val) {
echo "$prop = $val";
}
}
// instantiate one object
$herbie = new Car("white");
// show herbie properties
echo "herbie: Properties";
print_vars($herbie);
?>
输出结果
herbie: Properties color = white
NULL值
特殊的 NULL 值表示变量无值。NULL 是数据类型 NULL 唯一可能的值。NULL 值标示变量是否为空。也用于区分空字符串与空值数据库。
可以通过把值设置为 NULL,将变量清空:
<?php
$x="Hello world!";
$x=null;
var_dump($x);
?>
输出结果
NULL
字符串函数
strlen()函数
返回字符串的长度
- strlen() 常用于循环和其他函数,在确定字符串何时结束很重要时。(例如,在循环中,也许需要在字符串的最后一个字符之后停止循环)。
str_word_count() 函数
对字符串中的单词进行计数
strrev() 函数
反转字符串
strpos()函数
用于检索字符串内指定的字符或文本。
如果找到匹配,则会返回首个匹配的字符位置。如果未找到匹配,则会返回false。
例:
<?php
echo strpos("Hello world!","world");
?>
输出为 6
- 字符串 "world" 的位置是 6。是 6(而不是 7)的理由是,字符串中首字符的位置是 0 而不是 1。
替换字符串中的文本
str_replace()函数用一些字符串替换字符串中的另一些字符。
例:
<?php
echo str_replace("world", "Kitty", "Hello world!"); // 输出 Hello Kitty!
?>
输出
Hello Kitty!
PHP常量
常量是单个值的标识符。在脚本中无法改变该值。有效的常量名以字符或下划线开头(常量名称前没有$符号)。
- 注:与变量不同,常量贯穿整个脚本是自动全局的。
设置php常量
如需设置常量,使用define()函数,它三个参数:
1.首个参数定义常量的名称
2.第二个参数定义常量的值
3.可选的第三个参数规定常量名是否对大小写不敏感。默认是false。
例:
- 对大小写敏感的常量
<?php
define("GREETING", "Hello World!");
echo GREETING;
?>
输出
Hello World!
greeting
- 对大小写不敏感的常量
<?php
define("GREETING", "Hello World!",true);
echo greeting;
?>
输出结果
Hello World!
Hello World!
常量是全局的
常量是自动全局的,而且可以贯穿整个脚本使用。
例:
<?php
define("GREETING", "Hello World!");
function myTest() {
echo GREETING;
}
myTest();
?>
输出结果
Hello World!
PHP运算符
算术
例:
<?php
$x=17;
$y=8;
echo ($x + $y); // 输出 25
echo ($x - $y); // 输出 9
echo ($x * $y); // 输出 136
echo ($x / $y); // 输出 2.125
echo ($x % $y); // 输出 1
?>
赋值
例:
<?php
$x=17;
echo $x; // 输出 17
$y=17;
$y += 8;
echo $y; // 输出 25
$z=17;
$z -= 8;
echo $z; // 输出 9
$i=17;
$i *= 8;
echo $i; // 输出 136
$j=17;
$j /= 8;
echo $j; // 输出 2.125
$k=17;
$k %= 8;
echo $k; // 输出 1
?>
字符运算符
. :串接
.= :串接赋值
例:
<?php
$a = "Hello";
$b = $a . " world!";
echo $b; // 输出 Hello world!
$x="Hello";
$x .= " world!";
echo $x; // 输出 Hello world!
?>
递增/递减
例:
<?php
$x=17;
echo ++$x; // 输出 18
$y=17;
echo $y++; // 输出 17
$z=17;
echo --$z; // 输出 16
$i=17;
echo $i--; // 输出 17
?>