正确使用equals语法

时间:2014-10-07 07:51:27

标签: php comparison

有人可以帮助我使用以下代码

if ($scope = '9001') $docref = $rs["9001ref"]; 
elseif ($scope = '14001') $docref = $rs["14001ref"];
elseif ($scope = '18001') $docref = $rs["18001ref"]; 
elseif ($scope = '9001,14001') $docref = $rs["914001ref"]; 
elseif ($scope = '9001,18001') $docref = $rs["918001ref"]; 
elseif ($scope = '14001,18001') $docref = $rs["1418001ref"]; 
elseif ($scope = '9001,14001,18001') $docref = $rs["91418001ref"];

我不确定我是否应该使用=或==

并且也不确定我是否应该使用' '或" "

有人可以让我知道并提供一个简短的解释,以便我知道继续,谢谢。

2 个答案:

答案 0 :(得分:2)

相比之下,单=表示您正在为变量赋值。例如。 $scope = '14001'会将14001分配给$scope。要比较某些内容,请使用==(仅当值相同时)或===(如果值和类型匹配)。
使用'"基本上是代码风格问题。但是如果你在字符串中使用一些变量,那么"将解析字符串以检查内部是否有任何变量,而'将忽略字符串中的任何变量。
E.g:

$scope = '123';

echo "My scope is {$scope}"; // will echo "My scope is 123";
echo 'My scope is {$scope}'; // will echo "My scope is {$scope}";

此外,您可以在$包裹的字符串中使用以"开头的任何变量:

echo "Variable {$variable}";
echo "String {$row['someKey']}";
echo "Object {$this->variable}";
echo "Object method that returns value {$this->getValue()}";

答案 1 :(得分:0)

相比之下,必须有==

if ($scope = '9001') $docref = $rs["9001ref"]; 
elseif ($scope == '14001') $docref = $rs["14001ref"];
elseif ($scope == '18001') $docref = $rs["18001ref"]; 
elseif ($scope == '9001,14001') $docref = $rs["914001ref"]; 
elseif ($scope == '9001,18001') $docref = $rs["918001ref"]; 
elseif ($scope == '14001,18001') $docref = $rs["1418001ref"]; 
elseif ($scope == '9001,14001,18001') $docref = $rs["91418001ref"];

对于这种情况,更好的解决方案是使用switch而不是if-elseif条件。