PHP 8 uses a new built-in exception ValueError. PHP throws this exception when we pass a value to a function, which has a valid type but cannot be used for operation. In the earlier versions of PHP, we used to get a Warning error in such cases, but PHP 8 will show a ValueError.Example: ValueError in PHP 8OutputFatal error: Uncaught ValueError: array_rand(): Argument #1 ($array) cannot be emptyExample Live DemoOutputbool(false)Example: ValueError in PHP 8OutputFatal error: Uncaught ValueError: array_rand(): Argument #1 ($array) cannot be empty
In the previous versions of PHP, if we wanted to catch an exception, then we needed it to store in a variable to check whether that variable is used or not.Before PHP 8, to handle the exception catch block, we needed to catch the exception (thrown by the try block) to a variable.Example: Capturing Exception Catches in PHPExplanation − In the above program, the exception is being caught by the catch block to a variable $e. Now the $e variable can hold any information about the exception as code, message, etc.PHP 8 introduced non-capturing catches. Now, it is possible to ... Read More
str_starts_with and str_ends_with function are added in PHP 8 to check if a given string starts or ends with another string or not. If it starts and ends with another string, it returns true, otherwise false.Examplestr_starts_with('hello haystack', 'hello'); //starts string found 'True' str_starts_with('hello haystack', 'stack'); //ends string found 'True'str_starts_with('hello haystack', 'hay'); //starts string found 'False' str_starts_with('hello haystack', 'hay'); //ends string found 'False'str_starts_with() function in PHP 8This function checks if a given string starts with the string needle. It returns true if the first string is found, otherwise false.str_starts_with(string $haystack, string $needle): boolExample : using str_starts_with() function.OutputString starts with 'hello'Note: If ... Read More
In PHP 8, str_contains function determines if a string contains a given substring anywhere. The str_contains function checks if a first-string is contained in the second string and it returns a true /false Boolean value based on whether the string is found or not. it is a self-explanatory function.str_contains(string $haystack, string $needle): boolExample1 : PHP 8 str_contains function.Outputstring(23) "Tutorial has been found"Example: str_contains function.Note: The above program returns false because the first string does not contain the second string.strpos() functionIn PHP 7.x, strops() function is used to check if a given string contains another string or not. This function returns ... Read More
Weak Maps were added in PHP 7.4. It can be used to remove or delete objects when the cache refers to objects entity classes. It references to those objects, which does not avoid objects from memory garbage collected. In PHP 8, weak maps allow us to store random data linked to objects, without leaking any memory.In other words, a weak map in PHP 8 is a group of objects in which keys weakly reference. A weak map uses a class to create an object which can be used as a key, which can help to remove and destroy the weak ... Read More
Trailing commas are being used in PHP since PHP 7.2 version. We can use trailing commas in the last item in the array. We can add the element of the array without modifying the last line of the item if the line is already using a trailing comma.Trailing Commas before PHP 8.0Before PHP 8, we were not able add a comma to the end of the last parameter.Examplefunction($x, $y, $z){ }In PHP 8.0In PHP 8, we can add trailing commas at the end of the last parameter. PHP 8 allows using the trailing commas in the parameter list and Closure ... Read More
PHP 8 uses nullsafe operator instead of a null check condition. Using the nullsafe operator, we can use a chain of calls. While evaluating the elements, if one chain element fails, then the execution of the entire chain will abort and it evaluates to null.When the left-hand side operator evaluates to null, then the whole chain of execution will stop and it evaluates to null. If it does not evaluate to null, then it will behave like a normal operator.The nullsafe operator can be chained, and the expression will be short-circuited from the first nullsafe operator that meets null.$employee->getDepartment()?->getAddress()->format();The nullsafe ... Read More
Match expression is a new feature that is added in PHP 8. It is very much similar to switch-case statements, but it provides more safe semantics.Match expression does not use the 'case and break' structure of switch-case statements. It supports joint conditions, and it returns a value rather than entering a new code block.We can store match results in a variable because it is an expression.Match expression does not need a break statement like a switch. It supports only single-line expression.Example: PHP 7 Using Switch Statement Live DemoOutputHello World!Example: Above PHP 7 Code Using PHP 8 Match ExpressionOutputLooks Good!Example: Using PHP ... Read More
Using Union Type in PHP 8, we can use the values of two or more types, instead of using a single type. To specify multiple types, vertical line (|) is used to join them.Union type supports parameters, return types, and properties.Syntaxtype1|type2|……|type_nExample 1: Union TypeExample 2: PHP 8 Program using Union TypeOutput511.54Nullable Types in Union TypeIn PHP 7.1, nullable type is used with the question mark ?type. In PHP 8, we can declare nullable types as type|null. For example: float|int|null, but we cannot declare it as ?float|int.Nullable Types Syntaxtype1|type2|nullWe should not declare like ?type1|type2 because this would be an ambiguous declaration.Compile-time ... Read More
Attributes are kinds of classes that can be used to add metadata to other classes, functions, class methods, class properties, constants, and parameters. Attributes do nothing during runtime.Attributes have no impact on the code, but available for the reflection API. Attributes in PHP 8 allow other code to examine the class properties and methods.We can have more than one attribute to a declaration.It may resolve the class name.Attributes can be namespaced.It may have zero or more parametersPHP 8 Attribute SyntaxIn PHP 8, #[ ] (# and square brackets) is used for an attribute declaration.We can declare multiple attributes inside #[ ], ... Read More
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP