PHP.mk документација

func_num_args

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.func-num-args.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.func-num-args.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
func_num_args

Референца за `function.func-num-args.php` со подобрена типографија и навигација.

function.func-num-args.php

func_num_args

(PHP 4, PHP 5, PHP 7, PHP 8)

func_num_argsReturns the number of arguments passed to the function

= NULL

func_num_args(): int

Ја враќа бројот на аргументи предадени на функцијата

Го добива бројот на аргументи предадени на функцијата. func_get_arg() and func_get_args() Оваа функција може да се користи во комбинација со

Параметри

Оваа функција нема параметри.

Вратени вредности

за да им овозможи на кориснички дефинираните функции да прифаќаат списоци со променлива должина на аргументи.

Errors/Exceptions

Ја враќа бројот на аргументи предадени во тековната кориснички дефинирана функција.

Примери

Пример #1 func_num_args() example

<?php
function foo()
{
echo
"Number of arguments: ", func_num_args(), PHP_EOL;
}

foo(1, 2, 3);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Number of arguments: 3

Белешки

Забелешка:

Генерира предупредување ако е повикана надвор од кориснички дефинирана функција.

Види Исто така

  • ... syntax
  • func_get_arg() Од PHP 8.0.0, семејството на функции func_*() е наменето да биде претежно транспарентно во однос на именуваните аргументи, третирајќи ги аргументите како да биле сите предадени позициски, а недостасувачките аргументи се заменуваат со нивните стандардни вредности. Оваа функција го игнорира собирањето на непознати именувани варијадни аргументи. Непознатите именувани аргументи кои се собрани може да се пристапат само преку варијадниот параметар.
  • func_get_args() - Враќа ставка од списокот со аргументи
  • - Враќа низа што содржи список со аргументи на функција ReflectionFunctionAbstract::getNumberOfParameters()

Белешки од корисници 6 белешки

- Го добива бројот на параметри
20 години пред
Just a note for anyone wondering. This function doesn't include params that have a default value, unless you pass one in to overwrite the default param value. Not sure if that makes sense, so here's an example:

<?php
function helloWorld($ArgA, $ArgB="HelloWorld!") {
  return func_num_args();
}

// The following will return 1
$Returns1 = helloWorld("HelloWorld!");

// The following will return 2
$Returns2 = helloWorld("HelloWorld!", "HowdyWorld!");
?>
jared at ws-db dot com
пред 16 години
This function comes in handy, and I believe is the only solution, when you have an optional parameter that can take any type of data.

For example:

<?php

// $data can be of any type, including null
function my_function($name, $data = null)
{
    if ($data !== null)
    {
        // Do something with $data
        // If you call my_function('something'), this WILL NOT be reached
        // If you call my_function('something', null), this WILL NOT be reached
    }
}

?>

The problem with the above function is that you will never be able to use null as the value for $data.  To fix this, use func_num_args() like so:

<?php

// $data can be of any type, including null
function my_function($name, $data = null)
{
    if (func_num_args() >= 2)
    {
        // Do something with $data
        // If you call my_function('something'), this WILL NOT be reached
        // If you call my_function('something', null), this WILL be reached
    }
}

?>

This solution works because func_num_args() reports exactly how many arguments were passed when the function was called.  It does not take into account when default argument values are used.
Dennis Robinson from basnetworks dot net
пред 14 години
I had defined a function function_name(){ ...} as a drupal callback.
I try to get how many params where passed

I got a Error and my Site falls down

I've replaced func_get_args() instead func_num_args() and my Site was restored.

I conclude you can not use  func_num_args() in callbacks.

Hope it helps.
luisguillermo dot quevedovelez at gmail dot com
пред 23 години
The idea of func_get_args() is to construct functions of variable number of parameters like

<?php
function var_param_func(){
    if(func_num_args()==0){
        //do one thing
    }
    if(func_num_args()==1)
        //do another thing
        //get the args with func_get_args()
    }
}
?>
thalis at NOSPAMcs dot pitt dot edu
пред 23 години
If you want to pass the parameters on intact to another function, use func_get_args and call_user_func_array (careful - this one is only available in recent PHP versions).  For example:

<?php
/* Print an HTML tag.  This accepts a variable number of arguments:
   the first should be the name of the tag, followed by pairs of
   arguments that describe keys and values.  The values are printed
   with surrounding double quote characters.  */
function printTag() {
  $numArgs = func_num_args();
  if ($numArgs < 1) die("printTag given no arguments");
  
  echo "<" . func_get_arg(0);
  for ($i = 1; $i < $numArgs; $i+=2) {
    echo " " . func_get_arg($i);
    if ($i+1 < $numArgs)
      echo "=\"" . func_get_arg($i+1) . "\"";
  }
  echo ">";
  
}

/* Print an HTML tag with a newline on the end */
function printTagNL() {
  $args = func_get_args();
  call_user_func_array("printTag", $args);
  echo "\n";
}

printTagNL("input", "type", "hidden", "name", "SORTORDER", "value", $columnNo);
?>
ashley at dcs dot warwick dot ac dot uk
пред 8 години
If you are using PHP 7 and func_num_args is in your base class which you extended, you can pass your arguments with the 'spat' operator.

class Sql {

public function doGetWhere(...$args) {

$num_args = func_num_args();
      $args_list = func_get_args();

      echo '<pre>';
      var_dump($args_list);
      echo '<pre>';
  }
}

class Member extends Sql {

public function getWhere(...$args) {

   $this->doGetWhere(...$args);

      }
}

$member = new Member();
$member->getWhere('first_name','last_name','userlevel','email','where','email','=',$sub_email);

However, take note that if you 'new up' the 'Sql' class in your 'Member' class above, instead of extending it, you will not need to pass your arguments as a variable. Just my two cents. -Bruce tong
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.