Home  >  Article  >  Backend Development  >  An introduction to how the PHP constructor supports different numbers of parameters

An introduction to how the PHP constructor supports different numbers of parameters

jacklove
jackloveOriginal
2018-06-09 14:07:362580browse

php constructor supports different number of parameter methods

Principle: Use in __construct func_num_args Get the number of parameters, and then execute different calls based on the number of parameters. The parameter value is obtained using the func_get_arg() method.

demo:

<?php
class demo{
    private $_args;
    public function __construct(){
        $args_num = func_num_args(); // 获取参数个数
        // 判断参数个数与类型
        if($args_num==2){
            $this->_args = array(
                                &#39;id&#39; => func_get_arg(0),
                                &#39;dname&#39; => func_get_arg(1)
                            );
        }elseif($args_num==1 && is_array(func_get_arg(0))){
            $this->_args = array(
                                &#39;device&#39;=>func_get_arg(0)
                            );
        }else{
            exit(&#39;func param not match&#39;);
        }    
    }
    public function show(){
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;
        print_r($this->_args);
        echo &#39;
'; } } // demo1 $id = 1; $dname = 'fdipzone'; $obj = new demo($id, $dname); $obj->show(); // demo2 $device = array('iOS','Android'); $obj = new demo($device); $obj->show(); ?>


Output after demo execution:

Array
(
    [id] => 1
    [dname] => fdipzone
)
Array
(
    [device] => Array
        (
            [0] => iOS
            [1] => Android
        )
)

This article introduces how the PHP constructor supports different numbers of parameters. For more related content, please pay attention to the PHP Chinese website.

Related recommendations:

How to use PDO to query mysql to avoid SQL injection

Explanation of the PHP two-way queue class

The differences and characteristics between php heredoc and nowdoc

The above is the detailed content of An introduction to how the PHP constructor supports different numbers of parameters. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn