Php 从函数中获取多个数据
这是一个简单的函数Php 从函数中获取多个数据,php,Php,这是一个简单的函数 function check_nickname($item) { if (preg_match('/^[a-z\d_]{1,15}$/', $item)) { return true; } else { return false; } } 它只返回true或false 但是如果它是false,我希望它返回false+字符串中的一些文本或其他内容 if(check_nickname($item)) 将得到正确/错误。但是如果它为false,那
function check_nickname($item)
{
if (preg_match('/^[a-z\d_]{1,15}$/', $item)) {
return true;
} else {
return false;
}
}
它只返回true或false
但是如果它是false,我希望它返回false+字符串中的一些文本或其他内容
if(check_nickname($item))
将得到正确/错误。但是如果它为false,那么我如何回显一些文本字符串呢?您有几个选项 1.通过引用传递参数 您可以将方法签名更改为传入字符串引用,例如:
function check_nickname($item, &$output)
在函数体中,您可以将输出设置为所需,例如:$output=“some text”代码>
2.返回数组
或者,也可以返回数组(或对象),而不仅仅是布尔值:
return array(true, "some text");
3.在类中封装功能
另一种选择是将此功能封装在类中。
这意味着最初需要编写更多的代码,但会使消费代码更具可读性
class NickNameChecker {
private $nick;
private $reason;
public function __construct($nickname) {
$this->nick = $nickname;
}
public function check() {
if (preg_match('/^[a-z\d_]{1,15}$/', $this->nick)) {
return true;
}
$this->reason = "some text";
return false;
}
public function getReason() {
return $this->reason;
}
}
// usage:
$checker = new NickNameChecker("brian griffin");
if (!$checker->check()) {
echo $checker->getReason();
}
你有几个选择
1.通过引用传递参数
您可以将方法签名更改为传入字符串引用,例如:
function check_nickname($item, &$output)
在函数体中,您可以将输出设置为所需,例如:$output=“some text”代码>
2.返回数组
或者,也可以返回数组(或对象),而不仅仅是布尔值:
return array(true, "some text");
3.在类中封装功能
另一种选择是将此功能封装在类中。
这意味着最初需要编写更多的代码,但会使消费代码更具可读性
class NickNameChecker {
private $nick;
private $reason;
public function __construct($nickname) {
$this->nick = $nickname;
}
public function check() {
if (preg_match('/^[a-z\d_]{1,15}$/', $this->nick)) {
return true;
}
$this->reason = "some text";
return false;
}
public function getReason() {
return $this->reason;
}
}
// usage:
$checker = new NickNameChecker("brian griffin");
if (!$checker->check()) {
echo $checker->getReason();
}
为此,您需要向函数发送一个变量,该变量可以在函数中修改。你可以用推荐信。例子比文字更能说明问题
function check_nickname($item, &$sometext)
{
if (preg_match('/^[a-z\d_]{1,15}$/', $item)) {
return true;
} else {
$some_text = 'enter your message here';
return false;
}
}
if(!check_nickname($item, $txt))
{
echo $txt; // echoes "enter your message here";
}
为此,您需要向函数发送一个变量,该变量可以在函数中修改。你可以用推荐信。例子比文字更能说明问题
function check_nickname($item, &$sometext)
{
if (preg_match('/^[a-z\d_]{1,15}$/', $item)) {
return true;
} else {
$some_text = 'enter your message here';
return false;
}
}
if(!check_nickname($item, $txt))
{
echo $txt; // echoes "enter your message here";
}
然后myFunction()[0]
用于false
和myFunction()[1]
用于“其他字符串”
然后myFunction()[0]
对于false
和myFunction()[1]
对于“其他字符串”
一个干净的方法可能是使用异常机制。如果为false,则抛出包含所需消息的异常。一个干净的方法可能是使用异常机制。当它为false时,您会抛出一个包含所需消息的异常。我会让它只是
if (!check_nickname($item)) $message = "Martian names not accepted!";
我会让它只是
if (!check_nickname($item)) $message = "Martian names not accepted!";
返回一个空字符串“if true”?返回一个空字符串“if true”?异常机制用于定期执行特定函数不是一个好主意的情况。情况并非如此,OP只是想添加更多信息以返回数据。异常机制用于定期执行特定函数不是一个好主意的情况。事实并非如此,OP只是想添加更多信息以返回数据。