>백엔드 개발 >PHP 튜토리얼 >PHP中try.catch与return的执行顺序

PHP中try.catch与return的执行顺序

WBOY
WBOY원래의
2016-06-23 13:52:311988검색

try {      $pdo->begintransaction();      foreach ($sql_arr as $sql) {            $stmt = $pdo->exec($sql);      }      $pdo->commit();      return true;} catch (Exception $e) {      echo $e->getMessage();      $pdo->rollBack();      return false;}


如上。请熟悉的大神帮忙解释一下,php语言里面,try catch语句中如果有return,执行顺序是什么?
上面这段代码,想要的是:pdo事物正常运行返回true,若有异常返回false,请问能否正常实现?


回复讨论(解决方案)

你这样写的就是:正常运行返回true,若有异常返回false

但一定要设置属性项 PDO::ATTR_ERRMODE 为 PDO::ERRMODE_EXCEPTION
否则异常处理无效

还有
Exception $e
要写作
PDOException $e

毛病还不少哦

版主大大已经回答了,我来混分的,一个小例子

$res=test('oo');	if($res){		echo '呵呵';	}	function test($name){		try{			a($name);			return true;		}catch (Exception $e){			echo $e->getMessage();			return false;		}	}		function a($name){		if($name=="xx"){			return true;		}else{			throw new Exception("error");		}	}

你这样写的就是:正常运行返回true,若有异常返回false

但一定要设置属性项 PDO::ATTR_ERRMODE 为 PDO::ERRMODE_EXCEPTION
否则异常处理无效

还有
Exception $e
要写作
PDOException $e

毛病还不少哦


感谢!
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.