PHP函数
var_dump($var)打印变量信息
$export = var_export($var) 将变量内容以字符串形式返回
array_keys() 返回数组中所有keys
array_values() 返回数组中所有values
exit( );终止程序/脚本 执行;
in_array($var,$arr);判断是否在数组中
file_exists($filename);判断文件/文件夹是否存在
如果前端无法解析,有可能是content-type不对
header("Content-Type:application/json"); //增加头部,content-type为json
cookie&session
Keyword : 多台服务器,session共享
-
cookie:服务器用来识别用户的机制
-
session:为每一个访客创建唯一的ID(UID),用于存储变量.UID存储在cookie中创导.
-
cookie和session必须插在所有标签和任何输出之前
1. cookie
$expire 是cookie保存的时间
<?php
//创建cookie
$expire = time() + 60*60;
setcookie("user","cry",$expire);
?>
当客户端将cookie返回的时候,可以通过$_COOKIE获取cookie
<?php
echo $_COOKIE["user"];
//通过设置某个名称为空和有效时间让cookie过期方式删除cookie
setcookie("user", "", time()-3600);
?>
cookie缺点:cookie欺骗?
2. session
- 开启会话,会自动检测是否有相对应的UID
//开始会话
<?php session_start(); ?>
<html>
<body>
</body>
</html>
session变量的存取
-
?实现一个页面的访问次数
<?php
session_start();
//存
if (isset($_SESSION['views']) {
//第一次访问
$_SESSION['views'] = 1;
} else {
//不是第一次访问
$_SESSION['views'] += 1;
}
//取
$_SESSION['views'];
//释放指定变量
unset($_SESSION['views']);
?>
session变量的销毁
<?php session_destroy(); ?>
类与对象
:: 范围解析操作符
调用静态成员,类常量,静态方法
- 类的内部,self::$var1, parent::$var2
- 子类中调用父类被覆盖的方法 parent::func( ) ,类似于oc中子类中调用父类的方法[super func],super.func
访问控制
- protected 只允许子类访问
- private 只允许类内访问
- public 公开
抽象类 abstract class
- 抽象类不能被实例化
- 如果类中有一个方法被声明为抽象的,这个类必须声明为抽象类
- 继承一个抽象类的时候,子类必须定义父类中所有的抽象方法,这些方法的访问控制>=父类的
- 子类继承的父类的抽象方法,可以增加参数
traits方法复用...- -
trait A {
public function A {
echo "A";
}
}
class ABC {
use A;//使用A (trait)
}
$var1 = new ABC();
$var1->A;//输出 A
- 同时用多个trait
use A,B
- trait组合成一个新的trait...
trait hello {
public function sayHello() {
echo 'Hello ';
}
}
trait world {
public function sayWorld() {
echo 'World!';
}
}
trait helloword {
use hello,wolrd;
}
- 通过抽象方法来进行强制要求,类似继承抽象类时候,抽象方法需要被覆盖(类似swift中非可选的协议方法)
<?php
trait Hello {
public function sayHelloWorld() {
echo 'Hello'.$this->getWorld();
}
abstract public function getWorld();
}
class MyHelloWorld {
private $world;
use Hello;
public function getWorld() {
return $this->world;
}
public function setWorld($val) {
$this->world = $val;
}
}
?>
静态方法: 和普通静态方法调用差不多
trait也可以用于定义属性
<?phptrait PropertiesTrait {
public $x = 1;
}
class PropertiesExample {
use PropertiesTrait;
}
$example = new PropertiesExample;
$example->x;
?>