Php 使用SUBSTR获取字符串的两半

Php 使用SUBSTR获取字符串的两半,php,substr,Php,Substr,我希望有人能看到我在使用PHP的substr获取40个字符字符串的两半时缺少了什么: 我拥有的是40个字符长的可变$dk。我已经用echo语句验证了变量的存在,并且它返回了正确的值。我已经验证了gk=1或2。但结果我一无所获。为什么? $dk = "1234567891123456789212345678931234567894"; echo "<br><br>DK = ".$dk."<br><br>"; if ($a == 1) { echo "

我希望有人能看到我在使用PHP的substr获取40个字符字符串的两半时缺少了什么:

我拥有的是40个字符长的可变$dk。我已经用echo语句验证了变量的存在,并且它返回了正确的值。我已经验证了gk=1或2。但结果我一无所获。为什么?

$dk = "1234567891123456789212345678931234567894";
echo "<br><br>DK = ".$dk."<br><br>";
if ($a == 1) {
echo "A = 1<br><br>";
$gk = substr($dk, 0, 20); //I'm expecting the first 20 chars...12345678911234567892
} else {
echo "A = 2<br><br>";
$gk = substr($dk, 20, 20); //expecting the last 20 chars...12345678931234567894
}
echo "GK = ".$gk;
我试着用引号把变量括起来,以防万一是语法问题。我得到的只是

DK=123456781123456789212345678931234567894

A=1

GK=


不知道出了什么问题。我希望我已经给出了足够的解释和我的代码,以便人们能够理解!谢谢您的帮助。

代码是正确的,但是如果您检查$a是1或2,首先您必须为$a变量添加值


如果$a==1{如果$a==1,则{正在设置的值在哪里?尝试在$dk声明之前添加字符串,如:$gk=substrstring$dk,0,20;@Len_D,$A是手动设置的。由于它在回显A=1部分,我知道它正在进入if语句的该部分…对我来说很有用:您使用的是什么版本的PHP?它可能正在尝试确定变量的范围。Try在代码的开头添加$gk=DefaultValue;。我知道它将$a视为1或$a视为2,因为它给了我正确的回音线…所以不是这样…但谢谢你的建议。