【问题标题】:How do parameters (or arguments) work in PHP functions?PHP 函数中的参数(或参数)如何工作?
【发布时间】:2019-09-01 00:58:29
【问题描述】:

我发现了不同的函数,其中参数似乎工作或表现不同

我尝试了一个基本函数,其中有两个参数在函数内部定义为变量,但是我想理解的函数没有定义函数内部的参数

例如:

 function myFunction($name, $age)
  {
    $name = ('maj');
    $age = ('31');
  }

理论上应该(当我调用函数时)打印到屏幕:

31 日

但是这个例子呢?

 function createTable($name, $query)
  {
    queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
    echo "Table '$name' created or already exists.<br>";
  }

 function queryMysql($query)
  {
    global $connection;
    $result = $connection->query($query);
    if (!$result) die($connection->error);
    return $result;
  }

所以,这就是我感到困惑的地方。这些函数中的参数 $name 和 $query 定义在哪里?

【问题讨论】:

  • 那些已经定义好的函数,你需要在你想执行的地方调用它们才能看到输出例如:createTable('name', 'query')

标签: php function


【解决方案1】:

参数主要(不总是)用于将事物传递到函数中

所以如果你想让你的函数打印你给它的那些值,它看起来像这样。

function myFunction($name, $age) {
    echo $name;
    echo ' ';
    echo $age;
    echo PHP_EOL;
}

// call the function and pass the paramters into it

myFunction('maj', 31);
myFunction('John', 32);

结果:

maj 31
John 32

你没有在函数内部定义这两个变量,它们被定义并存在于函数内部,只有通过虚拟添加到参数列表中。

【讨论】:

  • 感谢所有 cmets 和答案。从我认为您所说的来看,参数被传递给函数,然后在调用函数为参数赋值时给出参数。对吗?
  • @MajdiKanaan - 我认为你混淆了这个概念,参数和参数几乎是一回事。唯一的区别是您使用/定义它们的上下文。也许这个question 会帮助你理解。基本上,在function myFunction($name, $age) {}$name$age 中是参数myFunction('maj', 31);“maj”和“31”是参数
  • 好的,这有点帮助,但是,这如何应用于上面的 $name 和 $query 参数(在我最初的问题中)?我不明白他们是如何被这个函数召唤出来的。
  • 它们是在你调用函数时定义的。 RiggsFolly 的回答解释了这一点。
【解决方案2】:

函数是可以在程序中重复使用的语句块。您已经定义了函数,现在您需要在要执行的地方调用它们。信息可以通过以逗号分隔的表达式列表的参数传递给函数。参数从左到右进行评估。后面的函数有两个参数$name, $query 因此当createTable 函数调用时,你也需要传递这两个参数,这些参数在函数内部使用。

//define function
function createTable($name, $query) {
    queryMysql("CREATE TABLE IF NOT EXISTS $name($query)");
    echo "Table '$name' created or already exists.<br>";
}

//call the function
createTable('user', 'id INT NOT NULL AUTO_INCREMENT,
        PRIMARY KEY(id),
        NAME VARCHAR(30) NOT NULL');

更多信息,您可以参考 PHP documentation

【讨论】:

    猜你喜欢
    • 2014-04-27
    • 2021-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多