【问题标题】:PHP: How do I change a variable dependent on another variable? (Newbie stuff)PHP:如何更改依赖于另一个变量的变量? (新手的东西)
【发布时间】:2019-11-22 22:15:54
【问题描述】:

我对网络编码很陌生,想在 php 方面有所改进,但我已经陷入困境:/

我想做的是有一个像
这样的句子 “西蒙喜欢苹果
现在我有一个名字的输入表单,所以我可以选择名字。所以它看起来像
$name 喜欢苹果

<table>
    <tr>
        <td><input type="text" id="name1" name="name1"></td>
        <td><input type="submit" id="submit" name="submit" value="Apply"></td>
    </tr>
</table>
    </div>
    <div id="text">
    <?php
        if(isset($_REQUEST['submit'])) {
        $name1 = $_REQUEST['name1'];
        echo "$name1 likes apples.";
        }
    ?>
    </div>
</form>

到目前为止一切都很好。我输入的任何名称都会替换 $name。现在我想做的是在我输入代词(我、你、他们等)时将“喜欢”更改为“喜欢”,这显然是有道理的。现在这里是我不知道该怎么做的地方。我当前的代码(不起作用)如下所示:

    <?php
        if(isset($_REQUEST['submit'])) {
        $name1 = $_REQUEST['name1'];
          if ($name1 = "I", "You") {
          $verb = "like";
          }
          else {
          $verb = "likes";
          }
        echo "$name1 $verb apples";
        }
    ?>

还有没有办法让它不区分大小写?

【问题讨论】:

标签: php if-statement variables


【解决方案1】:

您的代码中几乎没有问题。

single = 表示将我的变量设置为之后的任何字符串。因此,如果您想查看变量是否等于 You 之类的字符串,则必须使用 == ,它将返回 true 或 false 。

现在我们想说如果我的变量是 YouI ,将我的第二个变量更改为 like 。这将是输出:

  if ($name1 == "I" || $name1 == "You") {
  $verb = "like";
  }
  else {
  $verb = "likes";
  }

所以现在它说如果 $name1 等于 I OR(||) $name1 等于 You ,请将 $verb 更改为喜欢。

我们使用 || 作为 OR,&amp;&amp; 作为 AND。

如果你想要 echo variables 和 string 你应该使用 . 作为你的 variable 和 string 之间的拆分。所以它会是这样的:

echo $name1 . $verb . "apples";

有点像+,但不是数学方式,它只是意味着添加。

更新

是的。有一种方法可以检查您的字符串不区分大小写。你必须使用strcasecmp()

在你的代码中,应该是这样的:

  if (strcasecmp($name1,"I") == 0 || strcasecmp($name1,"You") == 0 ) {
  $verb = "like";
  }
  else {
  $verb = "likes";
  }

【讨论】:

  • 您没有回答有关如何使其不区分大小写的问题。
【解决方案2】:

不区分大小写的替换,$lut 表定义了应该用什么替换什么。如果您不想随着时间的推移更改它,可以将它放在 replaceMe 函数中。

代码:

<?php

$lut = [
    'like' => [
        'I',
        'You',
        'They',
        'We',
    ],
    'likes' => [
        'she',
        'he',
        'it',
        'someone',
        'somebody',
    ],
];

function replaceMe(string $name, array $lut) : string
{
    foreach ($lut as $key => $value) {
        $nameLower = strtolower($name);
        $valueLowerArr = array_map(
            function($input) {
                return strtolower($input);
            },
            $value
        );
        if (in_array($nameLower, $valueLowerArr)) {
            return strtolower($key);
        }
    }
    return '';
}

$name = 'She';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;

$name = 'I';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;

$name = 'iT';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;

$name = 'TheY';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;

$name = 'nobody';
echo "$name = " . replaceMe($name, $lut) . '<br>' . PHP_EOL;

给出结果:

She = likes<br>
I = like<br>
iT = likes<br>
TheY = like<br>
nobody = <br>

【讨论】:

    猜你喜欢
    • 2015-03-19
    • 1970-01-01
    • 2015-03-09
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-26
    相关资源
    最近更新 更多