Reversing a string in PHP refers to rearranging a given string's characters in reverse order, starting from the last character to the first. This task is often used in text manipulation or algorithm challenges, highlighting PHP's string-handling capabilities.
Examples:
Input : GeeksforGeeks
Output : skeeGrofskeeG
Input : 12485
Output : 58421
Below we have discussed about three basic and most commonly used methods of reversing strings in PHP:
Reversing string using strrev()
The strrev() function in PHP provides a straightforward approach to reversing a string. It takes a string as input and returns a new string with the characters in reverse order, making it an efficient tool for text manipulation.
Syntax
strrev($string)
Example :
In this example we defines a Reverse() function that uses strrev() to reverse a given string. The string "GeeksforGeeks" is passed to the function and the reversed result is printed.
PHP
<?php
// PHP program to reverse a string using strrev()
function Reverse($str){
return strrev($str);
}
// Driver Code
$str = "GeeksforGeeks";
echo Reverse($str)
?>
Reversing string using recursion and substr()
Reversing a string using recursion and substr() involves breaking the string into smaller parts. The substr() function extracts the last character, and recursion reverses the remaining string until it reaches the base case of an empty string, then reassembles it in reverse order.
Example: In this example we defines a recursive function Reverse() that reverses a string by slicing the first character and appending it to the reversed substring. The base case returns the string when only one character remains.
PHP
<?php
// PHP function to reverse a string using
// recursion and substr()
function Reverse($str){
// strlen() used to calculate the
// length of the string
$len = strlen($str);
// Base case for recursion
if($len == 1){
return $str;
}
else{
$len--;
// extract first character and concatenate
// at end of string returned from recursive
// call on remaining string
return Reverse(substr($str,1, $len))
. substr($str, 0, 1);
}
}
// Driver Code
$str = "GeeksforGeeks";
print_r(Reverse($str));
?>
In-place reversing a string without using library functions:
In-place string reversal modifies the original string without creating a copy. The approach involves swapping characters from both ends, starting with the first and last, and continuing inward until the middle of the string is reached.
Example: This PHP function reverses a string in-place by swapping characters from both ends towards the middle, without using library functions. It iterates over the string, exchanging corresponding characters, and returns the reversed string.
PHP
<?php
// PHP function to in place reverse a string
// without using library functions
function Reverse($str){
for($i=strlen($str)-1, $j=0; $j<$i; $i--, $j++)
{
$temp = $str[$i];
$str[$i] = $str[$j];
$str[$j] = $temp;
}
return $str;
}
// Driver Code
$str = "GeeksforGeeks";
print_r(Reverse($str));
?>
Similar Reads
SQL Commands | DDL, DQL, DML, DCL and TCL Commands SQL commands are crucial for managing databases effectively. These commands are divided into categories such as Data Definition Language (DDL), Data Manipulation Language (DML), Data Control Language (DCL), Data Query Language (DQL), and Transaction Control Language (TCL). In this article, we will e
7 min read
TCP/IP Model The TCP/IP model (Transmission Control Protocol/Internet Protocol) is a four-layer networking framework that enables reliable communication between devices over interconnected networks. It provides a standardized set of protocols for transmitting data across interconnected networks, ensuring efficie
7 min read
JavaScript Tutorial JavaScript is a programming language used to create dynamic content for websites. It is a lightweight, cross-platform, and single-threaded programming language. It's an interpreted language that executes code line by line, providing more flexibility.JavaScript on Client Side: On the client side, Jav
11 min read
Web Development Web development is the process of creating, building, and maintaining websites and web applications. It involves everything from web design to programming and database management. Web development is generally divided into three core areas: Frontend Development, Backend Development, and Full Stack De
5 min read
Basics of Computer Networking A computer network is a collection of interconnected devices that share resources and information. These devices can include computers, servers, printers, and other hardware. Networks allow for the efficient exchange of data, enabling various applications such as email, file sharing, and internet br
14 min read
React Interview Questions and Answers React is an efficient, flexible, and open-source JavaScript library that allows developers to create simple, fast, and scalable web applications. Jordan Walke, a software engineer who was working for Facebook, created React. Developers with a JavaScript background can easily develop web applications
15+ min read
Unified Modeling Language (UML) Diagrams Unified Modeling Language (UML) is a general-purpose modeling language. The main aim of UML is to define a standard way to visualize the way a system has been designed. It is quite similar to blueprints used in other fields of engineering. UML is not a programming language, it is rather a visual lan
14 min read
JavaScript Interview Questions and Answers JavaScript (JS) is the most popular lightweight, scripting, and interpreted programming language. JavaScript is well-known as a scripting language for web pages, mobile apps, web servers, and many other platforms. Both front-end and back-end developers need to have a strong command of JavaScript, as
15+ min read
React Tutorial React is a JavaScript Library known for front-end development (or user interface). It is popular due to its component-based architecture, Single Page Applications (SPAs), and Virtual DOM for building web applications that are fast, efficient, and scalable.Applications are built using reusable compon
8 min read
Waterfall Model - Software Engineering The Waterfall Model is a Traditional Software Development Methodology. It was first introduced by Winston W. Royce in 1970. It is a linear and sequential approach to software development that consists of several phases. This classical waterfall model is simple and idealistic. It is important because
13 min read