1、可变长度参数列表:如果实参个数大于形参,就必须在函数中包括func_get_args()或func_num_args()、func_get_arg()吗?2、require()函数本来不就是脚本读取某一文件,且只读取一次吗?那和require_once()还有什么区别呢?谢谢!

解决方案 »

  1.   

    require()包含某个文件,如果之前已经包含过这个文件,它不会检查,因此被包含的文件会被执行两次。require_once()会检查如果之前已经包含过该文件,这次的语句就不会执行,也就不会执行该文件。
      

  2.   

    1、func_num_args( )可以用来结合func_get_arg( )和func_get_args( )来允许使用者定义的函式接受variable-length参数列表   func_get_arg( )从参数列表返回项目,其语法:int func_get_arg (int arg_num),传回定义函数的参数列表的第arg_num个参数,其参数从0开始。且函数定义的外面来呼叫此函数会产生警告;并且当arg_num大于函数实际传递的参数数目时亦会产生警告并返回FALSE。   func_get_args()函数和func_get_arg()函数的区别在于,func_get_args()函数传回一数组,数组的各个元素相当于是目前使用者定义函式的参数列的数目。
    <?php
    class mydb{
    private $user;
    private $pass;
    private $host;
    private $db;public function __construct(){
    $num_args=func_num_args();
    if($num_args>0){
    $args=func_get_args();
    $this->host=$args[0];
    $this->user=$args[1];
    $this->pass=$args[2];
    this->connect();
    }
    }
    ?>2、require_once()包涵是绝对路径
       require_once() 语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
      

  3.   

    require与require_once功能基本类似,require_once执行时先检查引用的文件是否在该程序中的其他地方引入过,如果有,则不被执行