PHP 函数选项中的变量
PHP Variable in function options
我想使用以下 FPDF 扩展来密码保护一些 PDF
function SetProtection($permissions=array(), $user_pass='ABC123', $owner_pass='ABC123!')
但是我希望 $user_pass 是上面定义的变量,例如出生日期。
到目前为止我尝试过的选项包括
function SetProtection($permissions=array(), $user_pass=''.$dateofbirth, $owner_pass='ABC123!')
function SetProtection($permissions=array(), $user_pass=$dateofbirth, $owner_pass='ABC123!')
function SetProtection($permissions=array(), $user_pass='".$dateofbirth."', $owner_pass='ABC123!')
但是我经常遇到同样的问题,密码基本上是 '' 中任何内容的纯文本,而不是变量,例如,在最后一种情况下,密码是 ".$dateofbirth."
输入的就是这样。
我正在努力寻找正确的语法。
谢谢
亨利
您不能将变量用作默认值。要达到相同的效果,您可以做的最接近的事情是手动检查和替换参数变量,例如,
function SetProtection($permissions=array(), $user_pass=null, $owner_pass='ABC123!')
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
global $dateofbirth;
$user_pass = $dateofbirth;
}
...
}
$SetProtection = function ($permissions=array(), $user_pass=null, $owner_pass='ABC123!') use ($dateofbirth)
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
$user_pass = $dateofbirth;
}
...
}
class SomeClass()
{
private $dateofbirth;
...
function SetProtection($permissions=array(), $user_pass=null, $owner_pass='ABC123!')
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
$user_pass = $this->dateofbirth;
}
...
}
我想使用以下 FPDF 扩展来密码保护一些 PDF
function SetProtection($permissions=array(), $user_pass='ABC123', $owner_pass='ABC123!')
但是我希望 $user_pass 是上面定义的变量,例如出生日期。 到目前为止我尝试过的选项包括
function SetProtection($permissions=array(), $user_pass=''.$dateofbirth, $owner_pass='ABC123!')
function SetProtection($permissions=array(), $user_pass=$dateofbirth, $owner_pass='ABC123!')
function SetProtection($permissions=array(), $user_pass='".$dateofbirth."', $owner_pass='ABC123!')
但是我经常遇到同样的问题,密码基本上是 '' 中任何内容的纯文本,而不是变量,例如,在最后一种情况下,密码是 ".$dateofbirth."
输入的就是这样。
我正在努力寻找正确的语法。
谢谢
亨利
您不能将变量用作默认值。要达到相同的效果,您可以做的最接近的事情是手动检查和替换参数变量,例如,
function SetProtection($permissions=array(), $user_pass=null, $owner_pass='ABC123!')
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
global $dateofbirth;
$user_pass = $dateofbirth;
}
...
}
$SetProtection = function ($permissions=array(), $user_pass=null, $owner_pass='ABC123!') use ($dateofbirth)
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
$user_pass = $dateofbirth;
}
...
}
class SomeClass()
{
private $dateofbirth;
...
function SetProtection($permissions=array(), $user_pass=null, $owner_pass='ABC123!')
{
// You can also check if empty string if you have a use-case where empty string
// would also mean replace with $dateofbirth
if ($user_pass === null) {
$user_pass = $this->dateofbirth;
}
...
}