Bird
Raised Fist0
PHPprogramming~20 mins

Set_error_handler function in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Using set_error_handler in PHP
📖 Scenario: Imagine you are building a PHP script that needs to handle errors in a custom way. Instead of PHP showing default error messages, you want to catch errors and display a friendly message or log them differently.
🎯 Goal: You will create a custom error handler function and use set_error_handler to tell PHP to use your function when an error happens.
📋 What You'll Learn
Create a custom error handler function named myErrorHandler that accepts the standard error parameters.
Use set_error_handler to set myErrorHandler as the active error handler.
Trigger a warning error using trigger_error to test the custom handler.
Print the custom error message from inside the error handler.
💡 Why This Matters
🌍 Real World
Custom error handlers help websites and applications show friendly messages or log errors in a controlled way instead of default PHP errors.
💼 Career
Knowing how to manage errors is important for PHP developers to build robust, user-friendly applications and maintain code quality.
Progress0 / 4 steps
1
Create the custom error handler function
Write a function called myErrorHandler that accepts four parameters: $errno, $errstr, $errfile, and $errline. Inside the function, use echo to print the string: "Custom error: " followed by the error message $errstr and a newline character.
PHP
Hint

Define a function named myErrorHandler with the four error parameters. Use echo to print the message.

2
Set the custom error handler
Use set_error_handler to set myErrorHandler as the active error handler.
PHP
Hint

Call set_error_handler with the string 'myErrorHandler' as argument.

3
Trigger a warning error
Use trigger_error to trigger a user warning with the message 'This is a test warning.'.
PHP
Hint

Call trigger_error with the message and E_USER_WARNING as parameters.

4
Print the custom error message
Run the script and observe that the output shows the custom error message starting with Custom error: This is a test warning.
PHP
Hint

Run the PHP script. The output should show the custom error message.

Practice

(1/5)
1. What is the main purpose of the set_error_handler function in PHP?
easy
A. To define a custom function to handle errors when they occur
B. To stop all errors from appearing
C. To automatically fix errors in the code
D. To log errors to a file without any custom handling

Solution

  1. Step 1: Understand what set_error_handler does

    This function lets you tell PHP to use your own function to handle errors instead of the default error messages.
  2. Step 2: Compare options with this understanding

    Only defining a custom function to handle errors when they occur correctly describes this behavior. Automatically fixing errors, stopping all errors from appearing, and logging errors to a file without any custom handling are all incorrect.
  3. Final Answer:

    To define a custom function to handle errors when they occur -> Option A
  4. Quick Check:

    Custom error handling = Define function with set_error_handler [OK]
Hint: Remember: set_error_handler sets your own error function [OK]
Common Mistakes:
  • Thinking it stops errors completely
  • Assuming it fixes errors automatically
  • Confusing it with error logging functions
2. Which of the following is the correct syntax to set a custom error handler function named myErrorHandler?
easy
A. set_error_handler(&myErrorHandler);
B. set_error_handler(myErrorHandler);
C. set_error_handler('myErrorHandler');
D. set_error_handler($myErrorHandler);

Solution

  1. Step 1: Recall the syntax for passing function names in PHP

    When passing a function name as a callback, it must be a string in quotes.
  2. Step 2: Check each option

    set_error_handler('myErrorHandler'); correctly passes the function name as a string. set_error_handler(myErrorHandler); misses quotes, set_error_handler(&myErrorHandler); uses an invalid reference operator, and set_error_handler($myErrorHandler); uses a variable which is incorrect here.
  3. Final Answer:

    set_error_handler('myErrorHandler'); -> Option C
  4. Quick Check:

    Function name as string = 'myErrorHandler' [OK]
Hint: Function names as strings in callbacks [OK]
Common Mistakes:
  • Omitting quotes around function name
  • Using variable instead of string
  • Using reference operator & incorrectly
3. What will be the output of the following PHP code?
function customError($errno, $errstr) {
    echo "Error: [$errno] $errstr";
}
set_error_handler('customError');
trigger_error('This is a test error', E_USER_WARNING);
medium
A. Warning: This is a test error
B. Error: [512] This is a test error
C. Fatal error: Uncaught Error
D. No output

Solution

  1. Step 1: Understand the custom error handler and trigger_error

    The customError function prints the error number and message. The trigger_error calls this handler with E_USER_WARNING which has error number 512.
  2. Step 2: Predict the output

    The output will be the echo from customError showing the error number and message exactly as coded.
  3. Final Answer:

    Error: [512] This is a test error -> Option B
  4. Quick Check:

    Custom handler prints error number 512 and message [OK]
Hint: E_USER_WARNING error number is 512 [OK]
Common Mistakes:
  • Expecting default PHP warning format
  • Confusing error numbers
  • Thinking no output appears
4. Identify the error in this PHP code snippet using set_error_handler:
function handler($errno, $errstr) {
    echo "Error: $errstr";
}
set_error_handler(handler);
trigger_error('Oops!');
medium
A. trigger_error requires two arguments
B. trigger_error cannot be used with set_error_handler
C. handler function must return a value
D. Missing quotes around handler in set_error_handler

Solution

  1. Step 1: Check the set_error_handler syntax

    The function name passed to set_error_handler must be a string, so it needs quotes.
  2. Step 2: Verify trigger_error usage

    trigger_error can be called with one argument; the second is optional. The handler function does not need to return a value. Using trigger_error with set_error_handler is valid.
  3. Final Answer:

    Missing quotes around handler in set_error_handler -> Option D
  4. Quick Check:

    Function name must be string in quotes [OK]
Hint: Function names need quotes in set_error_handler [OK]
Common Mistakes:
  • Omitting quotes around function name
  • Thinking trigger_error needs two arguments
  • Expecting handler to return a value
5. You want to log all warnings and notices to a file instead of displaying them. Which approach using set_error_handler is best?
hard
A. Create a function that writes error details to a log file and set it with set_error_handler
B. Use set_error_handler with an empty function to ignore errors
C. Call trigger_error inside set_error_handler to log errors
D. Disable error reporting and rely on PHP default logging

Solution

  1. Step 1: Understand the goal

    You want to capture warnings and notices and save them to a file instead of showing them on screen.
  2. Step 2: Evaluate options

    Create a function that writes error details to a log file and set it with set_error_handler correctly describes creating a custom function that writes error info to a log file and setting it as the error handler. Use set_error_handler with an empty function to ignore errors ignores errors, which is not logging. Call trigger_error inside set_error_handler to log errors misuses trigger_error inside the handler, causing recursion. Disable error reporting and rely on PHP default logging disables reporting but does not customize logging.
  3. Final Answer:

    Create a function that writes error details to a log file and set it with set_error_handler -> Option A
  4. Quick Check:

    Custom handler writes logs = best practice [OK]
Hint: Custom handler writes logs to file for error control [OK]
Common Mistakes:
  • Ignoring errors instead of logging
  • Calling trigger_error inside handler causing loops
  • Disabling errors without custom logging
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard