## empty為true的表達式
~~~
empty(null);
empty(0);
empty('0');
empty('');
empty(false);
empty([]);
empty($not_exists_var);//未定義的變量
~~~
## empty為false的表達式
~~~
$exists_var = 'abc';
$a[] = empty($exists_var);
$a[] = empty($exists_var[0]);
$a[] = empty($exists_var[0.5]);
$a[] = empty($exists_var['0']);
~~~
## NULL 合并運算符
~~~
//當$username未定義,或者為null,值為 'nobody'
$username = $username ?? 'nobody';
//等價 $username = isset($username) ? $username : 'nobody';
//當$username為空(empty()返回true)
$username = $username ?: 'nobody';
//等價 $username = empty($username) ? $username : 'nobody';
~~~
## 返回帶命名空間的完整的類名
~~~
echo BaseController::class;
//返回 "app\\BaseController"
~~~
## 獲取某個文件夾下的文件
~~~
$files = glob($filePath . '*.php');
~~~
## new self與 new static的區別
self指向的是當前方法存在的這個類,也就是父類。static指向的是最終那個子類。
~~~
class Parent
{
public static function getParent()
{
return new self;
}
public static function getChild()
{
return new static;
}
}
class Son extends Parent
{
}
var_dump(Son::getParent(), PHP_EOL);//object(Parent)#1 (0) {}
var_dump(Son::getChild(), PHP_EOL);//object(Son)#1 (0) {}
~~~
## self::ClassName 與 static::ClassName 的區別
self指向的是當前方法存在的這個類,也就是父類。static指向的是最終那個子類。
~~~
class Parent
{
public static function getParent()
{
return self::class;
}
public static function getChild()
{
return static::class;
}
}
class Son extends Parent
{
}
echo Son::getParent(), PHP_EOL;//parent
echo Son::getChild(), PHP_EOL;//Son
~~~
## 為什么字符集不選擇utf8,排序規則不使用utf8\_general\_ci
采用utf8編碼的MySQL無法保存占位是4個字節的Emoji表情。為了使后端的項目,全面支持客戶端輸入的Emoji表情,升級編碼為utf8mb4是最佳解決方案。對于JDBC連接串設置了characterEncoding為utf8或者做了上述配置仍舊無法正常插入emoji數據的情況,需要在代碼中指定連接的字符集為utf8mb4。
- 搭建ThinkPHP6的開發環境
- 配置ThinkPHP6
- 必要的基礎知識(basic)
- MVC開發模式
- 控制器(controller)
- 數據庫(database)
- 模型(model)
- 模型關聯(relation)
- 視圖(view)
- Session
- Cookie
- 緩存(cache)
- 上傳(upload)
- 驗證器(validate)
- 驗證碼(captcha)
- 命令行(command)
- 服務器部署(deploy)
- 數據備份(backup)
- 數據同步(synchronization)
- 訂閱服務(subscribe)
- PHP 易混淆知識點
- 助手函數
- MySQL規范
- Redis 規范
- office插件 phpoffice
- 拼音插件 pinyin
- 日期插件 datetime
- 消息插件 amqp
- 產品部署環境的搭建
- PDF 等雜項處理
- 文件上傳
- 常用擴展
- flc/dysms
- 使用示例 ①
- 使用示例 ②
- qiniu/php-sdk
- 簡介
- 使用示例
- 使用示例 2 ②
- liliuwei/thinkphp-jump
- 擴展介紹
- 下載擴展
- 使用方法
- topthink/think-captcha
- 安裝擴展
- 驗證碼顯示
- 更換驗證碼
- 驗證碼校驗
- 驗證碼配置
- 自定義驗證碼
- phpoffice/phpspreadsheet
- 數據寫入表格
- 讀取表格數據
- topthink/think-queue
- 安裝
- 自定義函數
- 任務類
- 帶有日志的任務類