我打算创建一个将由其他函数使用的检查器函数。这个想法很简单:如果不满足条件,则通过返回来停止该功能。
这是原始代码:
function awesome(){
$a = "2";
if ($a != "1"){return;}
echo "awesome";
}
有效。因为$ a是2,所以返回函数并且没有出现“awesome”这个词。但是,有几个功能需要检查。为了避免重复,我这样做了:
function test($var){
if ($var != "1"){return;}
}
function awesome(){
test("2");
echo "awesome";
}
function awesomeagain(){
test("3");
echo "awesome";
}
但是出现了“awesome”这个词,并且没有返回功能awesome()和awesomeagain()。如何通过添加test()函数返回这两个?
谢谢。我非常感谢你的帮助。
答案 0 :(得分:2)
您的test
函数必须返回一个值,您必须在其他函数中测试此值。像这样:
function test($var) {
if ($var != "1")
return false;
else
return true;
}
所以,你的代码应该是这样的:
function awesome() {
if (test("2"))
echo "awesome";
}
但是,如果您想进行狂热检查,可以抛出异常。这应该是这样的:
function test($var) {
if ($var != "1")
throw new Exception();
}
和其他功能使用
function awesome() {
try {
test("2");
echo "yeah";
} catch ($e) {}
}
答案 1 :(得分:1)
要从函数返回,您必须使用return
关键字
function test($var){
if ($var == "1"){
return TRUE;
}
}
function awesome(){
if (!test("2")){
return FALSE;
}
echo "awesome";
return TRUE;
}
答案 2 :(得分:1)
f你可能不应该依赖另一个函数来阻止另一个函数形式运行。试试这个
function test($var){
if ($var != "1"){return false;} return true;
}
function awesome(){
if(test("2"))
echo "awesome";
}
function awesomeagain(){
if(test("3"));
echo "awesome";
}
答案 3 :(得分:1)
function test( $var ) {
return ( $var == "1" );
}
function awesome() {
if ( test("2") ) {
echo "awesome";
}
}
function awesomeagain(){
if ( test("3") ) {
echo "awesome";
}
}
Fikry,尝试重新学习conditional
的概念,这是基本的编程技巧。没有它,你将制作许多错误的代码和功能。
答案 4 :(得分:0)
function test($var) {
if ($var != "1"){
return "awesome";
}
// do something else when $var is not "1" here.
}
function awesome(){
echo test("2");
}
function awesomeagain(){
echo test("3");
}
就是这样! PHP太棒了! :)