PHP-Lernfunktion

不言
Freigeben: 2023-03-23 11:54:01
Original
1000 Leute haben es durchsucht

Der Inhalt dieses Artikels befasst sich mit dem Wissen über Funktionen beim PHP-Lernen. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

Funktionsdefinition

  1. Ein gültiger Funktionsname beginnt mit einem Buchstaben oder Unterstrich, gefolgt von Buchstaben, Zahlen oder Unterstrichen.

  2. Funktionsnamen können größenunabhängig sein (tatsächlich sind es Funktionsnamen und Methodennamen von PHP). , bei Klassennamen wird die Groß-/Kleinschreibung nicht beachtet); >PHP unterstützt keine Funktionsüberladung und es ist nicht möglich, deklarierte Funktionen aufzuheben oder neu zu definieren.

  3. Parameter der Funktion
  4. 1. Wertübertragung

    Das Ändern des Werts des Parameters innerhalb der Funktion hat keinen Einfluss auf die Funktion Wert des externen Parameters:
<?php
Test(); # function test.

function test()
{
    echo 'function test.';
}
Nach dem Login kopieren
2. Durch die Übergabe als Referenz

bleibt der Wert des Parameters innerhalb und außerhalb der Funktion konsistent. Zur Referenzübergabe können Sie das Symbol
vor dem Parameter in der Funktionsdefinition hinzufügen:

3. Variable Anzahl von Parametern
<?php
$i = 1;
add($i);
echo $i; # 1

function add($test)
{
    $test++;
}
Nach dem Login kopieren
PHP unterstützt eine variable Anzahl von Parameter. Die beim Definieren einer Funktion aufgeführten Parameter sind eigentlich nur die Mindestparameter; beim Aufruf sind mehrere Parameter zulässig, die zusätzlichen Parameter werden jedoch ignoriert:

&In PHP 5.5 und früheren Versionen, wenn Sie damit umgehen müssen Bei einer unbestimmten Anzahl von Parametern können Sie die folgenden Funktionen verwenden:

<?php
$i = 1;
add($i);
echo $i; # 2

function add(&$test)
{
    $test++;
}
Nach dem Login kopieren
– Gibt die Anzahl der an die Funktion übergebenen Parameter zurück.
– Gibt die angegebenen Parameter zurück.

– Gibt den Parameter zurück Liste in Form eines Arrays
function add($a, $b) 
{
    return $a + $b;
}

echo add(1,2,5); # 3
Nach dem Login kopieren


In PHP 5.6 und höher implementiert die func_num_args()-Syntax eine variable Anzahl von Parameterlisten:
func_get_arg()
Variable Funktion func_get_args()

PHP unterstützt das Konzept variadischer Funktionen – wenn nach einem Variablennamen Klammern stehen, sucht PHP nach einer Funktion mit demselben Namen wie der Variablenwert und versucht, sie auszuführen:
<?php
function func() 
{
    $argc = func_num_args();
    $argv = func_get_args();
    switch ($argc) {
       case 0:
           echo "没有参数。<br />";
           break;
       case 1:
           echo "只有1个参数。它是:" . func_get_arg(0) . "。<br />";
           break;
       case 2:
           echo "有2个参数。它们是:" . func_get_arg(0) . "," . func_get_arg(1) . "。<br />";
           break;
       default:
           echo "超过2个参数。它们是:";
           print_r($argv);
           break;
    }
}

func();          # 没有参数。
func(1);         # 只有1个参数。它是:1。
func(1,2);       # 有2个参数。它们是:1,2。
func(1,2,3,4,5); # 超过2个参数。它们是:Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 )
Nach dem Login kopieren

...Hinweis: Variablenfunktionen unterstützen keine Sprachstrukturen in PHP, wie z. B.

,
function sum(...$numbers) 
{
    $acc = 0;
    foreach ($numbers as $n) {
        $acc += $n;
    }
    return $acc;
}

echo sum(1, 2, 3, 4); # 10
Nach dem Login kopieren
usw.

Anonyme Funktion

In PHP ermöglicht eine anonyme Funktion, auch Abschlussfunktion genannt, die temporäre Erstellung einer Funktion ohne angegebenen Namen. In Rückruffunktionen häufig verwendete Parameter:
<?php
function foo() 
{
    echo "In foo()";
}

$func = 'foo';
$func(); # In foo()
Nach dem Login kopieren
echo Abschlussfunktionen können auch als Wert von Variablen verwendet werden: print

Abschlüsse können Variablen vom übergeordneten Bereich erben. Solche Variablen sollten mit dem Sprachkonstrukt

übergeben werden:

<?php
print_r(array_map(function($value) {
    return $value * 2;
}, range(1, 5)));
# Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 )
Nach dem Login kopieren
Wenn Sie die Bindung der Variablen in

verzögern müssen, müssen Sie eine Referenz verwenden, andernfalls wird eine Kopie erstellt beim Definieren Kopieren Sie es in

:
$greet = function($name) {
    printf("Hello %s\r\n", $name);
};

$greet('World'); # Hello World
Nach dem Login kopieren

useDynamischer Funktionsaufruf

<?php
$message = 'hello';

$example = function () use ($message) {
    echo $message;
};
$example(); # hello
Nach dem Login kopieren
In PHP können Sie Funktionen nicht nur direkt aufrufen, sondern auch indirekt über

oder < aufrufen 🎜> Funktion: useuse

Verwandte Empfehlungen:
&lt;?php
$result = 0;
 
$one = function() use ($result) { 
    var_dump($result); 
};
 
$two = function() use (&amp;$result) { 
    var_dump($result); 
};
 
$result++;
 
$one();  # int(0)
$two();  # int(1)
Nach dem Login kopieren

Array für PHP-Lernen

call_user_func()call_user_func_array()

WampSever für PHP-Lernen
&lt;?php
function named_func($param1, $param2)
{
    echo &quot;这是一个命名函数。参数是:$param1 和 $param2 。&lt;br /&gt;&quot;;
}

call_user_func(&quot;named_func&quot;, &quot;PARAM1&quot;, &quot;PARAM2&quot;);

call_user_func_array(&quot;named_func&quot;, array(&quot;PARAM1&quot;, &quot;PARAM2&quot;));
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPHP-Lernfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!