php7相容spilit PHP 7 異常

2021-10-13 05:01:16 字數 1234 閱讀 6586

php 7 異常

php 7 異常用於向下相容及增強舊的assert()函式。它能在生產環境中實現零成本的斷言,並且提供拋出自定義異常及錯誤的能力。

老版本的api出於相容目的將繼續被維護,assert()現在是乙個語言結構,它允許第乙個引數是乙個表示式,而不僅僅是乙個待計算的 string或乙個待測試的boolean。

assert() 配置

配置項預設值可選值

zend.assertions11 - 生成和執行** (開發模式)

0 - 生成**,但在執行時跳過它

-1 - 不生成** (生產環境)

assert.exception01 - 斷言失敗時丟擲,可以丟擲異常物件,如果沒有提供異常,則丟擲 assertionerror 物件例項。

0 - 使用或生成 throwable, 僅僅是基於物件生成的警告而不是丟擲物件(與 php 5 相容)

引數assertion

斷言。在 php 5 中,是乙個用於執行的字串或者用於測試的布林值。在 php 7 中,可以是乙個返回任何值的表示式, 它將被執行結果用於指明斷言是否成功。

description

如果 assertion 失敗了,選項 description 將會包括在失敗資訊裡。

exception

在 php 7 中,第二個引數可以是乙個

throwable 物件,而不是乙個字串,如果斷言失敗且啟用了 assert.exception 該物件將被丟擲。

例項將 zend.assertions 設定為 0:

例項ini_set('zend.assertions',0);assert(true==false);

echo'hi!';?>

以上程式執行輸出結果為:

hi!將 zend.assertions 設定為 1,assert.exception 設定為 1:

例項ini_set('zend.assertions',1);ini_set('assert.exception',1);assert(true==false);

echo'hi!';?>

以上程式執行輸出結果為:

fatal error: uncaught assertionerror: assert(true == false) in -:2

stack trace:

#0 -(2): assert(false, 'assert(true == ...')

#1 thrown in - on line 2

php7相容spilit PHP7 相容性檢測

php 7 都出到7.4 了,是時候把手中的discuz論壇公升級到php 7了,考慮了半天相容性的問題,準備公升級到php 7.3 discuz 的主程式已經公升級到最新的discuz 20191201版本了,相容php 7.3應該是沒有問題,剩下的就是安裝的那些外掛程式的相容性的問題.檢測php...

php不相容 php7不相容dedecms

php7不相容dedecms 一 無法獲取錯誤資訊,一片空白,一片空白是無法除錯的,所以要做的第一件事,能夠輸出錯誤資訊。開啟 include common.inc.php 找到下面的 error reporting e all error reporting e all e notice 改為er...

PHP擴充套件相容PHP7遷移記錄

php7擴充套件編寫的時候,提供的一些核心方法和之前的php之前的版本並不能完全相容。有不少方法引數做了調整。下面是在遷移過程中遇到的一些問題。記錄下來,避免大家再踩坑。方法引數改為四個。add assoc stringl parray,key,value,value len 遷移的時候,只要把最後...