Php 应用程序中的错误处理程序函数
我是编程方面的新手。我试图捕捉并显示应用程序中的错误。使用全局变量很简单:Php 应用程序中的错误处理程序函数,php,error-handling,global-variables,global,pass-by-reference,Php,Error Handling,Global Variables,Global,Pass By Reference,我是编程方面的新手。我试图捕捉并显示应用程序中的错误。使用全局变量很简单: $errors = ''; class Name { /** * Validate form */ public function validate_form() { global $errors; (...) if ( empty($_POST["blabla"]) ) { $errors = 'Error';
$errors = '';
class Name {
/**
* Validate form
*/
public function validate_form() {
global $errors;
(...)
if ( empty($_POST["blabla"]) ) {
$errors = 'Error';
}
(...)
return;
}
/**
* Display errors
*/
public function show_error() {
global $errors;
if(!empty($errors)) return '<div class="error">' . PHP_EOL . htmlspecialchars($errors) .'</div>';
}
}
$errors='';
类名{
/**
*验证表单
*/
公共功能验证表单(){
全球$错误;
(...)
如果(空($_POST[“blabla”])){
$errors='Error';
}
(...)
返回;
}
/**
*显示错误
*/
公共函数show_error(){
全球$错误;
如果(!empty($errors))返回“”。PHP EOL.htmlspecialchars($errors)。“”;
}
}
…但我读到你不应该使用全局变量。没有全局变量,我如何做同样的事情
对不起我的英语;) 您可以抛出异常
<?php
class Name {
/**
* Validate form
*/
public function validate_form() {
(...)
if ( empty($_POST["blabla"]) ) {
throw new RuntimeException( 'Error' );
}
(...)
return;
}
$obj = new Name();
/**
* Display errors
*/
public function show_error($e) {
return '<div class="error">' . PHP_EOL . htmlspecialchars($e->getMessage()) .'</div>';
}
}
// TEST
try {
$obj->validate_form();
}
catch(Exception $e) {
$obj->show_error($e);
}
不让它全球化怎么样,即:
<?php
class Name {
public $errors;
/*
* Validate form
*/
public function validate_form() {
(...)
if ( empty($_POST["blabla"]) ) {
$this->errors = 'Error';
}
(...)
return;
}
}
这对我有用。我把$obj->$errors改为$obj->errorssorry,关于那个打字错误
$obj = new Name()->validate_form();
if(isset($obj->errors)){
//oops, an error occured, do something
}