PHP基础学习笔记
@[PHP|编程语言]
变量
- 用
$
表示变量,变量名区分大小写,函数名不区分大小写 - 全局变量(global)声明在函数外,只能在函数外访问
- 局部变量(local)声明在函数内,只能在函数内访问
- 要在函数内使用全局变量,需要在函数内声明,如
global &x;
- PHP有**全局数组 GLOBALS[index]∗∗,可使用 G L O B A L S [ i n d e x ] ∗ ∗ , 可 使 用 GLOBAL[‘x’]访问
- static和C语言一样,一次声明后不再初始化
数据结构
字符串、整数、浮点数、逻辑、数组、对象、NULL
常量
使用define函数创建常量
例:
//定义对参数敏感的常量x
define("x","xxx");
//定义对参数不敏感的常量x
define("y","xxxx",true);
运算符
字符运算符
使用.
进行连接,使用.=
进行连接赋值
比较运算符
==
表示等于,===
表示相等且类型相同!=
和<>
都表示不等于!==
不全等,类型不同或值不同
逻辑运算符
and 与 or 或 xor 异或 &&与 || 或 ! 非
数组运算符
运算符 | 名称 | 例子 | 结果 |
---|---|---|---|
+ | 联合 | $x + $y | $x 和 $y 的联合(但不覆盖重复的键) |
== | 相等 | $x == $y | 如果 $x 和 $y 拥有相同的键/值对,则返回 true。 |
=== | 全等 | $x === $y | 如果 $x 和 $y 拥有相同的键/值对,且顺序相同类型相同,则返回 true。 |
!= | 不相等 | $x != $y | 如果 $x 不等于 $y,则返回 true。 |
<> | 不相等 | $x <> $y | 如果 $x 不等于 $y,则返回 true。 |
!== | 不全等 | $x !== $y 如果 x与 x 与 y 完全不同,则返回 true。 |
逻辑和循环语句
逻辑语句
- if 语句 - 如果指定条件为真,则执行代码
- if…else 语句 - 如果条件为 true,则执行代码;如果条件为 false,则执行另一端代码
- if…elseif….else 语句 - 选择若干段代码块之一来执行
- switch 语句 - 语句多个代码块之一来执行
循环语句
- while - 只要指定条件为真,则循环代码块
- do…while - 先执行一次代码块,然后只要指定条件为真则重复循环
- for - 循环代码块指定次数
- foreach - 遍历数组中的每个元素并循环代码块
forwach举例
<?php
$colors = array("red","green","blue","yellow");
foreach ($colors as $value) {
echo "$value <br>";
}
?>
数组
使用array创建
<?php
$cars=array("Volvo","BMW","SAAB");
?
三种数组类型
- 索引数组 - 带有数字索引的数组
- 关联数组 - 带有指定键的数组
- 多维数组 - 包含一个或多个数组的数组
可以使用count函数返回数组长度!不像其他的语言用什么size,length之类函数的
关联数组
其实就是C++语言的map,python的dict等
创建方法:
//方法一
$age=array("Peter"=>'35',"Pet"=>'34');
//方法二
$age["Peter"]="35";
$age["Pet"]="34";
foreach遍历关联数组
$age=array("Peter"=>34,"Bob"=>12);
foreach($age as $x=>$x_value){
echo "$x age is $x_value";
}
- 使用sort函数对数组进行升序排序
- 使用rsort函数对数组进行降序排序
- 使用ksort对关联数组进行键升序排序
- 使用arsort对关联数组根据值降序排序
超全局变量
超全局变量有:
-
GLOBALS−
G
L
O
B
A
L
S
−
_SERVER
-
REQUEST−
R
E
Q
U
E
S
T
−
_POST
-
GET−
G
E
T
−
_FILES
-
ENV−
E
N
V
−
_COOKIE
- $_SESSION
$GLOBALS — 引用全局作用域中可用的全部变量
$GLOBALS 这种全局变量用于在 PHP 脚本中的任意位置访问全局变量(从函数或方法中均可)。
PHP 在名为 $GLOBALS[index] 的数组中存储了所有全局变量。变量的名字就是数组的键。
PHP $_SERVER
$_SERVER 这种超全局变量保存关于报头、路径和脚本位置的信息。具体有哪些变量可以查看相关手册
PHP $_REQUEST
PHP $_REQUEST 用于收集 HTML 表单提交的数据。
PHP $_POST
PHP $_POST 广泛用于收集提交 method=”post” 的 HTML 表单后的表单数据。$_POST 也常用于传递变量。
PHP $_GET
PHP $_GET 也可用于收集提交 HTML 表单 (method=”get”) 之后的表单数据。
$_GET 也可以收集 URL 中的发送的数据。
命名空间Namespace
PHP 命名空间可以解决以下两类问题:
- 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
- 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。
声明方式
在所有代码前声明Namespace
<?php
// 定义代码在 'MyProject' 命名空间中
namespace MyProject;
// ... 代码 ...
可以在一个文件中声明多个命名空间,但是要用大括号把对应代码框起来
<?php
namespace MyProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
namespace AnotherProject {
const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}
?>
子命名空间
与文件目录很像
<?php
namespace MyProject\Sub\Level; //声明分层次的单个命名空间
const CONNECT_OK = 1;
class Connection { /* ... */ }
function Connect() { /* ... */ }
?>
上面的例子创建了常量 MyProject\Sub\Level\CONNECT_OK,类 MyProject\Sub\Level\Connection 和函数 MyProject\Sub\Level\Connect。
面向对象的oop
类定义
- 类使用 class 关键字后加上类名定义。
- 类名后的一对大括号({})内可以定义变量和方法。
- 类的变量使用 var 来声明, 变量也可以初始化值。
- 函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。
- 变量 $this 代表自身的对象
构造函数
格式:void __construct(变量){code}
析构函数
格式:void __destruct(void){code}
访问控制
使用extends来继承
- public(公有):公有的类成员可以在任何地方被访问。
- protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。
- private(私有):私有的类成员则只能被其定义所在的类访问。
注意:如果使用var定义,则认为是公有的
其他
- 使用const修饰符定义类常量