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;
?>