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

jacklove
Release: 2023-03-31 09:26:02
Original
2587 people have browsed it

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(); ?>
Copy after login


Output after demo execution:

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

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!

Related labels:
php
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template