Question: What are main features of PHP 7?
- Lower Memory Consumption
- Improved performance as now using Zend Engine 3.0
- Consistent 64-bit support
- Scalar type declarations
- Return type declarations
- define() updates: Now you can add array.
- unserialize updates: Provide better security when unserializing objects on untrusted data
- Anonymous classes can be created
- Null coalescing operator (??) have been added
Namespaces declaration like use some\namespace\{ClassA, ClassB, ClassC as C};
- Many fatal errors converted to Exceptions
- Secure random number generator
- session_start will accept an array.
- Spaceship operator
- list() function updates
Question: What is null coalescing operator?
null coalescing operator (??) has been introduced in PHP7.
$username = $_GET['username'] ?? $_POST['username'] ?? 'not passed'; print($username);
Question: What are Scalar type declarations?
Scalar type declarations has two type of options.
- coercive - coercive is default mode and need not to be specified.
- strict - strict mode has to explicitly hinted.
Question: What is Namespaces?
Namespaces are a way of encapsulating items. we can use two more different classes into one Namespaces.
Question: What is purpose of Namespaces?
1) To fixed the name collisions between your code and internal PHP classes/functions/constants or third-party classes/functions/constants.
2) Ability to shorten for Extra_Long_Names, improving readability of source code.
Question: Explain about Namespaces in PHP7?
- Namespace must be the first statement in the PHP Script.
- We can define Sub-Namespace also
- Defining multiple namespaces in same file with/without using bracketed syntax (Multiple declaration is not Recommended)
- We can access the Global method of namespaces using \
namespace A\B\C; function strlen($string){ return \strlen($string).'--arun'; } echo strlen('imarun');
- we can use __NAMESPACE__ for getting the current namespace name
- We can use Alias for namespace as below
use mynamespace\car as mycar;
- import multiple namespaces in single line
use some\namespace\{ClassA, ClassB, ClassC as C}; use function some\namespace\{fn_a, fn_b, fn_c}; use const some\namespace\{ConstA, ConstB, ConstC};
- Using namespaces: fallback to global function/constant
a) An unqualified class name resolve to current namespace
b) An unqualified function name resolve to current namespace
c) An unqualified constant name resolve to Global namespace
Question: What is Class Constants?
Class Constants: You can define constant as string OR expression. but you can not define as variable, or function.
Question: When autoloading classes loads automatic?
a) Autoload when create object.
b) Autoload when include an another (using extends)
c) Autoload when include an interface (using implements )
d) we Can add exception in spl_autoload_register
Question: What is Visibility?
Class methods must be declare as public, protected or private.
You can also declare with var which means public
Question: What are Static Keyword?
Declaring class property or methods as static makes them accessible without needing an instantiation of the class.
$this is not available inside the function.