Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 简单循环不工作_Php_If Statement - Fatal编程技术网

Php 简单循环不工作

Php 简单循环不工作,php,if-statement,Php,If Statement,我正在从某个给我提供团队名称的地方删除信息。如果我做了echo$HomeTeam,我得到值“manutd” 但是当我这么做的时候。。它不工作(显示空白) 这显示为空白。。。你知道为什么吗?我尝试添加$HomeTeam=strval($HomeTeam)将其转换为字符串,但没有任何区别。$HomeTeam变量未设置,这就是打印时返回空的原因。将值设置为这样的值&它应该可以工作 $PlayerName = "Robin Van Persie"; //just to test that it's wo

我正在从某个给我提供团队名称的地方删除信息。如果我做了
echo$HomeTeam,我得到值“manutd”

但是当我这么做的时候。。它不工作(显示空白)


这显示为空白。。。你知道为什么吗?我尝试添加
$HomeTeam=strval($HomeTeam)
将其转换为字符串,但没有任何区别。

$HomeTeam
变量未设置,这就是打印时返回空的原因。将值设置为这样的值&它应该可以工作

$PlayerName = "Robin Van Persie"; //just to test that it's working
$HomeTeam = "Man Utd";
switch($PlayerName)
    {
    case "Robin Van Persie":
        if ($HomeTeam == "Man Utd") { echo $HomeTeam; } //Man Utd
        break;
    default: echo "Player not in the list"; break;
    }
如果($HomeTeam==“Man Utd”)
没有其他设置,那么$HomeTeam不能等于
“Man Utd”

试试这个

$PlayerName = "Robin Van Persie"; //just to test that it's working
switch($PlayerName){
    case "Robin Van Persie":
        $HomeTeam ?  print($HomeTeam) : print("HomeTeam is not set");
    break;
    default: echo "Player not in the list"; break;
}

如果您打算对其进行硬编码,而不将值存储在数据库中,那么您可能会对这种使用数组的方法感兴趣:

$search = "Robin Van Persie";

//Your data array, easyier to add to no
$teams = array(
    'Manchester United'=>array('Robin Van Persie',
                               'Wayne Rooney',
                               ),

    'Arsenal'=>array('Theo Walcott',
                     'Nicklas Bendtner',
                     ),             
);

$result=null;
foreach($teams as $team=>$players) {
    if(in_array($search,$players)) {
        $result = $team;
    }
}
//Robin Van Persie's team is Manchester United
echo ($result != null) ? $search.'\'s team is '.$result : 'Team for '.htmlentities($search).' not found.';

尝试
var\u dump($PlayerName,$HomeTeam)
。确保字符串的长度与它们应该的长度完全一致。并在“if”后面加上一个“else”,以响应消息。我认为这个案例是可行的,但“如果”不是。顺便说一句,在现实世界中,硬编码会变得庞大且无法维护,您最好将数据存储在数据库中,然后您可以简单地忘记这个开关语句。@Kolink-if I
echo$HomeTeam,我只是得到了“曼Utd”,但如果我写了你发布的内容,我会得到一长串的东西。。。字符串(16)“Robin Van Persie”对象(简单的对象节点)1007(9){[“nodetype”]=>int(1)[“tag”=>string(2)“td”[“attr”]=>array(1){[“class”]=>string(11)“ismawaytam”}[“children”]=>array(0){[nodes nodes]=>array(1){[0]=>object object(简单的对象节点)1008(9){“nodetype”=>string(11)“ismawaytam”=>[“子项”]=>array(0){}[“节点”]=>array(0){}[“父项”]=>RECURSION[“{”]=>array(1)…更多…@DawsonLoudon如果我添加一个
Else
,它会执行Else部分中的任何操作,但问题是我正在寻找它来获取
If
中的值。最终我希望它说如果主队是曼联,那么列出主队是什么。为了这个问题,我尝试简化它。它不会返回空when打印。如果我
echo$HomeTeam;
没有If循环,它会返回“Man Utd”,但如果它在If循环中,它就不会返回。嗯..就是这样..当我回显它时(没有If循环),它确实显示为“Man Utd”,所以我认为它不是以字符串或其他形式存储的。是的,可能是这样。你能检查它是否等于“Man Utd”吗“当转换为字符串时?这会回显$HomeTeam的值,因此看起来它会工作。
$HomeTeam?打印($HomeTeam)是什么?”
怎么办?我本来打算使用if循环来捕获每个团队,但我不知道如何使用您列出的代码。谢谢。@Cully
print
几乎像
echo
函数,还有
$HomeTeam?print($HomeTeam):print(“HomeTeam未设置”)
是一种检查var是否等于true的简捷方法,
$var?#如果为true,请做些什么:#如果为false,请做些其他事情
@Cully你是如何检索球队/球员列表的?我正在使用简单的_html_dom从某处抓取它。我正在删除这些值,并且我有循环10次的代码(每周10场比赛,因此每场比赛一次)…然后它检查$HOMETOAM和$AwayTeam,并将两者都回显出来。这是有效的,只是将$HOMETOAM回显为“曼联”,但显然有些东西弄糟了。为了简化问题,我删掉了其他内容。感谢循环的简短形式。我会看看是否可以用不同的方式来解决这个问题。@Cully我刚刚看到了你的
var_dump()
结果,而问题似乎是由
$HomeTeam
作为一个对象引起的,它可能是从simple\u html\u dom返回的调用,这就是为什么您可以回显它,但不能比较它,在我为您发布的代码中,它起作用了,因为我检查
$HomeTeam
是否等于TRUE,尝试转换
$HomeTeam
转换为字符串,或将对象中的特定值转换为新字符串变量
$search = "Robin Van Persie";

//Your data array, easyier to add to no
$teams = array(
    'Manchester United'=>array('Robin Van Persie',
                               'Wayne Rooney',
                               ),

    'Arsenal'=>array('Theo Walcott',
                     'Nicklas Bendtner',
                     ),             
);

$result=null;
foreach($teams as $team=>$players) {
    if(in_array($search,$players)) {
        $result = $team;
    }
}
//Robin Van Persie's team is Manchester United
echo ($result != null) ? $search.'\'s team is '.$result : 'Team for '.htmlentities($search).' not found.';