1、基本语法
- PHP 脚本以 <?php 开始,以 ?> 结束
- 输出:echo 和 print。(类比sout)
-
PHP 文件通常包含 HTML 标签和一些 PHP 脚本代码
2、变量
- 弱类型语言
- 被$修饰的称为变量,变量名必须以字母或下划线开始
- 全局变量(在函数外定义的变量):除了函数外,全局变量可以被脚本中的任何部分访问。函数内访问与更新全局变量,方式1:需要用global关键字修饰;方式2:访问数组 $GLOBALS[index],index是变量名
- 函数中的局部变量在函数执行完成后,局部变量会被删除,使用static修饰,保证该局部变量会保留上一次的值
<?php
//变量
$a = 9;
$b = 1;
echo $a+$b; // 10
//弱类型语言
$text = "hello";
print $text; //hello
function myTest()
{
//方式1:关键字修饰
global $a,$b;
$a=$a+$b;
//方式2:数组
$GLOBALS['a']=$GLOBALS['a']+$GLOBALS['b'];
}
myTest();
echo $a; //10
?>
3、常量
- 使用define()函数设置常量
- 常量是全局的,函数内也可以正常使用
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
//case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
4、数据类型
- String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)
- 变量比较,==只比较值,不比较类型;===比较值与类型
5、字符串
- 并置运算符(.):连接字符串,需要保证连接符左右都是字符串,eg:$txt1 . " " . $txt2
- implode(separator,array):将数组转为字符串并用分隔符连接
- explode(separator,string,limit):将字符串以分隔符分割转为数组
- preg_split ( string $pattern , string $subject): 通过一个正则表达式分隔字符串
- strval() :获取变量的字符串值。
- (.=)累积,类似于 +=
6、数组
- 键值对数组:数值数组、关联数组(类似list与map)
- 数值数组,自动分配ID键:$x = array("red","green"); 访问,$x[0] :red,$x[1] : green。输出数组:Array ( [0] => red[1] => green)。遍历数组使用for循环
- 关联数组:$age=array("Peter"=>"35","Ben"=>"37"); 访问,$age['peter'] : 35。遍历数组使用foreach方式
- 获取数组长度:count()
- array_map(function,array1,array2,array3...):将array1,array2,array3... 数组每一项作用于函数function返回结果
- array_merge() 函数把一个或多个数组合并为一个数组。
- array_values(array):返回数组中所有键值的数组,但不保留键名
- array_unique(array):移除数组中重复的值。如果两个或更多个数组值相同,只保留第一个值,其他的值被移除。
- array_flip(array):反转/交换数组中的键名和对应关联的键值
- current(array):返回数组中的当前元素的值(每个数组中都有一个内部的指针指向它的"当前"元素,初始指向插入到数组中的第一个元素。
-
array_diff() 函数用于比较两个(或更多个)数组的值,并返回差集。该数组包括了所有在被比较的数组(array1)中,但是不在任何其他参数数组(array2 或 array3 等等)中的值。
-
array_intersect_key() 函数用于比较两个(或更多个)数组的键名 ,并返回交集。
-
array_fill_keys(keys,value); 用给定的指定键名的键值填充数组。
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
//关联数组遍历方式
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
7、面向对象
-> 类对象访问类的成员(属性或方法)
:: 可以访问静态、const和类中重写的属性与方法。