1.数据类型
1.1 数据类型
1.2 类型转换
2.变量
2.1 普通变量
2.2 预定义变量
2.3 可变变量
2.4 全局变量
2.5 静态变量
3.常量
3.1 普通常量
3.2 预定义常量
4.运算符
4.1 比较运算符:==与===的区别
4.2 字符运算符 “.”
4.3 执行运算符``
4.4 错误控制运算符 @
5.控制结构
5.1 foreach
5.2 for
5.3 while
6.数组
6.1 数组声明
6.2 数组赋值
6.3 数组联合
6.4 数组提取
6.5 数组删除元素
6.6 数组排序
6.7 数组其他函数
6.8 多维数组
7.函数
8.php引用文件
9.php面向对象
1.数据类型
1.1数据类型:
1)标量类型:boolean 、integer、float、string
2)复合类型 array、object
3) 特殊类型 resourse、NULL
1.2类型转化:
显式类型转换
• 例如:(int)$total 或 intval($total) 或settype($total, "integer")
• 变量的当前类型可以通过 gettype 函数或是is_type 函数获得
• gettype($total) - 可能返回 "unknown"
• is_integer($total) – 明确告诉你是还是不是
2.变量
2.1普通变量:
例如:$foo='Bob'
1)弱类型 2)'$'开头
2.2预定义变量
• PHP 提供了大量的预定义变量• 包括主机和操作系统的许多环境变量
• 可以通过调用 phpinfo() 查看预定义变量列表
2.3可变变量
• 动态定义一个变量的名称
$a = 'hello';
$$a = 'world';
echo "$a $hello";
• 两个变量都被定义了:$a 的内容是“hello”并且 $hello 的内容是“world”
2.4全局变量:需用global
<?php
$a = 1;
$b = 2;
function Sum()
{
global $a, $b;
$b = $a + $b;
}
Sum();
echo $b;
?>
2.5静态变量:static
<?php
function Test()
{
static $a = 0;
echo $a;
$a++;
}
?>
静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。
3.常量
3.1普通常量:
define("NAME","VALUE");
特点:
常量前面没有美元符号($)
• 常量只能用 define() 函数定义,而不能通过赋值语句
• 常量可以不用理会变量作用域的规则而在任何地方定义和访问
• 常量一旦定义就不能被重新定义或者取消定义
• 常量的值只能是标量(整数,浮点数,字符串)
3.2预定义常量
• __FILE__ 执行中的 PHP 程序文件名• __LINE__ 执行中 PHP 程序行数
• PHP_VERSION PHP 的版本
• PHP_OS 执行 PHP 的操作系统名称
• TRUE 真值
• FALSE 假值
• E_ERROR 指向最近的错误处
4.运算符:
4.1 比较运算符:0=="0" 为真,但是 0==="0" 不为真
4.2字符串运算符:英文句点“.”,其功能是将字符串连接起来,合并成新字符串:$str =‘hello ’ . $name;
4.3执行运算符 ` `
<?php
$output = `ls -al`;
echo "<pre>$output</pre>";
?>
4.4错误控制运算符 @
当将其放置在一个 PHP 表达式之前,该表达式可能产生的任何错误信息都被忽略掉
• 放在变量,函数调用,常量等之前
• 不能放在函数或类的定义之前,也不能用于条件结构例如 if 和 foreach 等
5.控制结构:
while,do-while,for ,foreach
5.1 foreach
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) {
$value = $value * 2;
}
// $arr is now array(2, 4, 6, 8)
?>
5.2 for
<?php
for ($number = 1; $number <=10; $number++) {
}
?>
5.3 while
<?php
while ($a < 100) {
$a = $a * $b + 7;
$b++;
} ?>
或者
<?php
while ($a < 100) :
$a = $a * $b + 7;
$b++;
endwhile; ?>
6.数组
6.1数组声明
$list = array(0 => "apples",
1 => "oranges",
2 => "grapes")
如果给出的 value 没有指定索引,则取当前最大的整数索引值加一
<?php
// This array is the same as ...
$a = array(5 => 43, 32, 56, "b" => 12);
// ...this array
$b = array(5 => 43, 6 => 32, 7 => 56,
"b" => 12);
var_dump($a);
var_dump($b);
?>
6.2数组赋值
赋值数组元素
• 通过 [索引/Key] 访问赋值数组元素
• 如果数组不存在,数组将会被创建
• 如果一个数组元素不存在,它将会被创建
$arr[4] = 7;
$arr["day"] = "Tuesday";
$arr[] = 17;
var_dump($arr);
6.3数组联合
数组的联合
<?php
$a = array("a" => "apple", "b" => "banana");
$b = array("a" => "pear", "b" => "strawberry",
"c" => "cherry");
$c = $a + $b; // Union of $a and $b
var_dump($c);
$c = $b + $a; // Union of $b and $a
var_dump($c);
?>
6.4数组的提取
• 可以将 keys 和 values 从数组中提取出来
$highs = array( "Mon" => 74, "Tue" => 70,
"Wed" => 67, "Thu" => 62,
"Fri" => 65);
$days = array_keys($highs);
$temps = array_values($highs);
6.5删除数组元素
• 使用函数 unset 可以删除数组中的元素unset($list[4]);// 现在索引为4的元素不存在了
unset($list); // 删除整个数组
6.6数组的排序函数
• 正向,逆向,是否保持索引关系等• sort
• asort
• rsort
• ksort
• krsort
$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
echo "fruits[".$key."] = " . $val . "\n";
}
输出:
fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange
6.7其他数组常用函数
• is_array($list)– 检测变量是否是数组• in_array(17, $list)– 检测17是否是$list的一个元素
• explode(" ", $str)– 将一个字符串分割成数组,以空格为分隔符
• implode(" ", $list)– 将数组转换成字符串,以空格为分隔符
6.8多维数组
• 多维数组的创建$arr_books=array(
'0-679-7681-9’=>array(
'name'=>'The New History', 'pages'=>400,
'publisher=>'Vintage Books')
'0-512-85585-5’=>array(
'name'=>'Children of the Mind',
'pages'=>549 , 'publisher'=>'Tor Books')
);
多维数组的访问
• 要查询 The New History 一书的页数有多少,可以使用以下的表达式:
• $arr_books[‘0-51-85595-5’][‘pages’]
7函数
• PHP函数的定义语法为:function 函数名(参数列表)
{
函数功能;
}
• 函数不能被重载、重复定义,但可以嵌套
• 函数名和关键字忽略大小写区别!
• 可以有返回值(return),也可以没有
从函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符 &
function &returns_reference() {
$someref = "hello";
return $someref;
}
$newref =& returns_reference();
echo $newref;
8.在 PHP 中引用文件
• require()的使用方法,如require("MyRequireFile.php");• 该函数一般放在 PHP 程序的最前面,PHP程序在执行前,就会先读入 require 语句所指定引入的文件,使它变成 PHP 文件的一部分
在 PHP 中引用文件
• include() 的使用方法和 require() 一样include("MyIncludeFile.php");
• 两者的区别在于,当 require 引用的文件丢失时会产生一个严重错误,程序会停止运行
• include 引用的文件丢失时只会产生一个警告,程序继续运行
9.面向对象的 PHP
<?phpclass SimpleClass {
// 成员声明
public $var = 'a default value';
// 方法声明
public function displayVar() {
echo $this->var;
}
}
?>
面向对象的 PHP:继承
<?php
class ExtendClass extends SimpleClass
{
// Redefine the parent method
function displayVar()
{
echo "Extending class\n";
parent::displayVar();
}
}
$extended = new ExtendClass();
$extended->displayVar();
?>