使用 empty 和 strcmp 比较 2 个字符串
Compare 2 strings using empty and strcmp
您好,我想这很简单。我需要检查 2 个给定的字符串是否为空,然后使用 strcmp 比较两个字符串,并让它回调到一个函数,如果它们是否匹配,该函数将回显一条语句。这就是我的
$firstString = "Geek2Geek";
$secondString = "Geezer2Geek";
function sameVar($firstString, $secondString) {
echo "Both strings similar";
}
function diffVar($firstString, $secondString) {
echo "Both strings do not the same";
}
if (empty($firstString)) {
echo "The first string is empty";
} else {
echo "The first string is not empty";
}
if (empty($secondString)) {
echo "The second string is empty";
} else {
echo "The second string is not empty";
}
if (strcmp($firstString, $secondString) !== 0) {
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
我创建了一个 if 语句来检查字符串是否为空,但我想知道是否有办法创建一个 if 语句来检查两个字符串是否为空。我试过了
if (empty($firstString, $secondString))
但是当我重新加载页面时什么也没有出现。还在 VSCode
中给我一个红点
我想第二件事是使用 strcmp 并让它调用函数。我玩弄它并删除 $secondString 中的值,它仍然调用函数 sameVar
编辑:
根据说明,如果检查两个字符串都不为空,我必须在第一个 if 语句中嵌套一个 if 语句。我完成了它并且几乎完成了。我只需要弄清楚如何在 $firstString 或 $secondString 包含空值时在末尾包含一个 else 子句。
我的另一个问题是这两个函数都没有回显完整的句子。它应该回显“Geek2Geek 和 Geezer2Geek 都不匹配”而不是我得到“两者都不匹配”
<?php
$firstString = "Geek2Geek";
$secondString = "Geezer2Geek";
function sameVar() {
echo "Both $firstString and $secondString match";
}
function diffVar() {
echo "Both $firstString and $secondString do not match";
}
if (empty($firstString) && empty($secondString)) {
echo "The Strings are empty";
} else {
echo "The Strings are not empty <br/>";
if (strcmp($firstString, $secondString) === 0) {
sameVar();
} else {
diffVar();
echo "<p>Either the $firstString variable and the $secondString variable does not contain a value so the two strings cannot be compared.</p>";
}
}
// need to include
// else { echo "<p>Either the $firstString variable and the $secondString variable does not contain a value so the two strings cannot be compared. </p>" }
// must be included at the end of the script
?>
要检查两个字符串是否为空,请执行:
if (empty($firstString) && empty($secondString)) {
...
}
此外,您可能还想阅读有关 logical operators 的内容。
关于 strcmp
,您只需翻转函数调用 - !== 0
表示两个字符串 are not equal.
由于empty
只接受一个参数 (manual),所以不能像empty($firstString, $secondString)
.[=20=那样使用它]
所以,如果你要检查 both 字符串是否为空,那么你的代码是:
if (empty($firstString) && empty($secondString)) {
echo 'Both string are empty';
}
更进一步,这段代码
if (strcmp($firstString, $secondString) !== 0) {
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
必须重写为
if (strcmp($firstString, $secondString) === 0) { // === instead of !==
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
因为strcmp
returns 0
只有当字符串相同时.
作为旁注 - 如果您的函数不需要参数,请不要传递它们:
if (strcmp($firstString, $secondString) === 0) {
sameVar();
} else {
diffVar();
}
// where `sameVar` and `diffVar` are:
function sameVar() {
echo "Both strings similar";
}
function diffVar() {
echo "Both strings do not the same";
}
您好,我想这很简单。我需要检查 2 个给定的字符串是否为空,然后使用 strcmp 比较两个字符串,并让它回调到一个函数,如果它们是否匹配,该函数将回显一条语句。这就是我的
$firstString = "Geek2Geek";
$secondString = "Geezer2Geek";
function sameVar($firstString, $secondString) {
echo "Both strings similar";
}
function diffVar($firstString, $secondString) {
echo "Both strings do not the same";
}
if (empty($firstString)) {
echo "The first string is empty";
} else {
echo "The first string is not empty";
}
if (empty($secondString)) {
echo "The second string is empty";
} else {
echo "The second string is not empty";
}
if (strcmp($firstString, $secondString) !== 0) {
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
我创建了一个 if 语句来检查字符串是否为空,但我想知道是否有办法创建一个 if 语句来检查两个字符串是否为空。我试过了
if (empty($firstString, $secondString))
但是当我重新加载页面时什么也没有出现。还在 VSCode
中给我一个红点我想第二件事是使用 strcmp 并让它调用函数。我玩弄它并删除 $secondString 中的值,它仍然调用函数 sameVar
编辑:
根据说明,如果检查两个字符串都不为空,我必须在第一个 if 语句中嵌套一个 if 语句。我完成了它并且几乎完成了。我只需要弄清楚如何在 $firstString 或 $secondString 包含空值时在末尾包含一个 else 子句。
我的另一个问题是这两个函数都没有回显完整的句子。它应该回显“Geek2Geek 和 Geezer2Geek 都不匹配”而不是我得到“两者都不匹配”
<?php
$firstString = "Geek2Geek";
$secondString = "Geezer2Geek";
function sameVar() {
echo "Both $firstString and $secondString match";
}
function diffVar() {
echo "Both $firstString and $secondString do not match";
}
if (empty($firstString) && empty($secondString)) {
echo "The Strings are empty";
} else {
echo "The Strings are not empty <br/>";
if (strcmp($firstString, $secondString) === 0) {
sameVar();
} else {
diffVar();
echo "<p>Either the $firstString variable and the $secondString variable does not contain a value so the two strings cannot be compared.</p>";
}
}
// need to include
// else { echo "<p>Either the $firstString variable and the $secondString variable does not contain a value so the two strings cannot be compared. </p>" }
// must be included at the end of the script
?>
要检查两个字符串是否为空,请执行:
if (empty($firstString) && empty($secondString)) {
...
}
此外,您可能还想阅读有关 logical operators 的内容。
关于 strcmp
,您只需翻转函数调用 - !== 0
表示两个字符串 are not equal.
由于empty
只接受一个参数 (manual),所以不能像empty($firstString, $secondString)
.[=20=那样使用它]
所以,如果你要检查 both 字符串是否为空,那么你的代码是:
if (empty($firstString) && empty($secondString)) {
echo 'Both string are empty';
}
更进一步,这段代码
if (strcmp($firstString, $secondString) !== 0) {
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
必须重写为
if (strcmp($firstString, $secondString) === 0) { // === instead of !==
sameVar($firstString, $secondString);
} else {
diffVar($firstString, $secondString);
}
因为strcmp
returns 0
只有当字符串相同时.
作为旁注 - 如果您的函数不需要参数,请不要传递它们:
if (strcmp($firstString, $secondString) === 0) {
sameVar();
} else {
diffVar();
}
// where `sameVar` and `diffVar` are:
function sameVar() {
echo "Both strings similar";
}
function diffVar() {
echo "Both strings do not the same";
}