没有默认值的可选参数-PHP
对于我遇到的方法或函数,我面临一些困惑,这些方法或函数接受一些可选参数。在检查函数声明时,我没有看到任何默认值 例如,我正在使用一个PDO对象没有默认值的可选参数-PHP,php,function,Php,Function,对于我遇到的方法或函数,我面临一些困惑,这些方法或函数接受一些可选参数。在检查函数声明时,我没有看到任何默认值 例如,我正在使用一个PDO对象 $dbh = new PDO( $dsn,$username,$password,$option ); 摘自PDO课程 class PDO { /** * (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)<br/> * Creates a PDO instance representi
$dbh = new PDO( $dsn,$username,$password,$option );
摘自PDO课程
class PDO {
/**
* (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)<br/>
* Creates a PDO instance representing a connection to a database
* @link http://php.net/manual/en/pdo.construct.php
*
* @param $dsn
* @param $username [optional]
* @param $passwd [optional]
* @param $options [optional]
*/
public function __construct( $dsn, $username, $passwd, $options ) {
}
}
类PDO{
/**
*(PHP5=5.1.0,PECL pdo=0.1.0)
*创建表示到数据库的连接的PDO实例
*@linkhttp://php.net/manual/en/pdo.construct.php
*
*@param$dsn
*@param$username[可选]
*@param$passwd[可选]
*@param$options[可选]
*/
公共函数构造($dsn、$username、$passwd、$options){
}
}
从表面上看,我看不出参数是如何被设置为可选的(除了构造函数方法的注释)。我的理解是,如果需要,必须始终提供参数,否则必须设置默认值。我仍处于学习编程的早期阶段,如果有人能解释这背后的原因或我遗漏了什么,我将不胜感激
非常感谢您的时间和帮助。您从PDO类中摘录的内容来自何处?我使用的是phpstorm IDE,它允许您“转到”函数的声明,而该声明又将我带到了一个称为“不可变嵌入存根”的东西。我注意到“存根”似乎只有声明作为占位符。啊,我想可能是这样的。问题是,PDO是PHP中的一个内置类,实际上是用C实现的,而不是PHP。IDE生成的存根不是构造函数的实际代码。就PHP而言,您的理解是正确的。参数可选的唯一方法是提供一个默认值。@Don’t哦,我明白了,非常有趣。非常感谢您的澄清。(诚然,我希望有一些奇特的替代方法来实现可选参数,但我并不知道)。不客气。我不知道定义可选命名参数的另一种方法,但您可以传递比函数签名中定义的参数更多的参数,并使用
func\u get\u args
获取它们,还可以使用变长参数列表。这些东西并不适用于本例,仅供参考。