The same syntax used by is_callable and call_user_func can be used to pass static methods as arguments in PHP.To pass the static method, the below example can be used −Example Live Demo OutputThis will produce the following output −bool(true) my_func bool(true)
The Reflection API can be used to pass arguments from array to constructor.ReflectionClass::newInstanceArgsThe above line creates a new class instance from given arguments −public ReflectionClass::newInstanceArgs ([ array $args ] ) : objectIt creates a new instance of the class when the arguments are passed to the constructor. Here, args refers to the arguments that need to be passed to the class constructor.Example Live DemoOutputThis will produce the following output −object(ReflectionFunction)#2 (1) { ["name"]=> string(6) "substr" }
The domain name can be validated using the below code in PHP −Example Live Demo $domain_name = 'https://tutorialspoint.com' is_valid_domain_name($domain_name)OutputThis will produce the following output −$domain_name = 'https://tutorialspoint.com' is_valid_domain_name($domain_name)In the above code, the ‘preg_match’ function is used to match the domain_name passed as an argument to the user-defined function ‘is_valid_domain_name’.
To install Imagick or Imagemagick on windows, follow the below mentioned procedure −Check the permissions on the .dll file. This will make sure that the Apache user has read access to the file.It is better to change the permission of the [PHP]/extension directory.In order to change the permission, follow the below steps −Right click on the file(s) or folder(s)Select "Properties"Select the "Security" tabClick on "Edit" button.Change the permission of user to Full Control.
The memory_get_usage() function can be caked before and after allocating memory to the class created.class MyBigClass { var $allocatedSize; var $allMyOtherStuff; } function AllocateMyBigClass() { $before = memory_get_usage(); $ret = new MyBigClass; $after = memory_get_usage(); $ret->allocatedSize = ($after - $before); return $ret; }Output will be the memory of object with respect to the environment setup.
In PHP version 5.3, methods of objects in array can be called using the below code −$props = array_map(function($obj){ return $obj->getProp(); }, $objs);This will be slower than a ‘for’ loop since it invokes one function for every element −function map($obj) { return $obj->getProperty(); } $props = array_map('map', $objs);Alternatively, for PHP versions before 5.3, the below code can be used −function map($obj) { return $obj-> getProperty (); } $props = array_map('map', $objs); }The getProperty function will be called on all the objects and the specific property is displayed. Alternative −function encode_data($val){ if(is_array($val)){ return $val = ... Read More
The short answer is no. POST/GET values are never null. The best they can be is an empty string, which can then be converted to null/'NULL' −Example Live Demoif ($_POST['value'] === '') { $_POST['value'] = null; } echo'Null assigned';OutputThis will produce the following output −Null assigned
PHP doesn't support friend-like declarations. It can be simulated in PHP5 using the __get and __set methods and by inspecting a backtrace for the allowed friend classes. But this type of coding practice is considered to be clumsy −class sample_friend { private $__friends = array('My_Friend', 'Other_Friend'); public function __get($key) { $trace = debug_backtrace(); if(isset($trace[1]['class']) && in_array($trace[1]['class'], $this->__friends)) { return $this->$key; } // __get() code goes here trigger_error('Cannot access private property ' . __CLASS__ . '::$' . $key, E_USER_ERROR); ... Read More
The .ini files from the main php,ini file can’t be included. Instead, while compiling PHP, the line--with-config-file-scan-dir=PATH can be added.The ‘PATH’ in the above line refers to the location where the configuration file is to be scanned.During compile time, PHP will look for each and every .ini file in that specific directory, apart from searching in the normal php.ini file.
The memory_get_usage function can be used to track the memory usage. The ‘malloc’ function is not used for every block required, instead a big chunk of system memory is allocated and the environment variable is changed and managed internally.The two different types of memory usages are −The memory required by the engine from OS (the real usage)The amount of memory that was actually used by the application (internal usage)The above mentioned memory usage can be tracked using memory_get_usage(). This function returns both real and actual memory used depending on our requirement.For example: if we are looking at specific code snippets, ... Read More