【问题标题】:PHP echo this if conditionPHP 回显这个 if 条件
【发布时间】:2019-07-03 22:29:17
【问题描述】:

我有一些文件名为:fileONE-13fileFive-22 等。我正在尝试编写一个执行以下操作的 php 代码:如果在最后一个 - = fileONE- 之前的任何内容,则回显某些内容,如果在最后一个 - = fileFive- 之前的任何内容,然后回显其他内容......等等。

然而,我目前所拥有的只是回应第一个,即使 bookname 不同。

<?php
$filename = basename($_SERVER['REQUEST_URI'], '?' . $_SERVER['QUERY_STRING']);
$chapterNo = substr(strrchr($filename, "-"), 1, 2); 
$bookname = substr($filename, 0, strrpos($filename, '-'));


if      ($bookname = "fileONE-") { echo "This is File 1 - $chapterNo"; }
elseif  ($bookname = "fileFive-") { echo "This is File 5 - $chapterNo"; }
?>

我也试过$bookname == "fileONE-" 等。但它什么也没做。

【问题讨论】:

    标签: php arrays string if-statement echo


    【解决方案1】:

    你是从 VB 来的吗? :) 在 PHP 和其他人中,您使用 == not = 进行测试 所以到目前为止你所做的是将“fileONE-”分配给变量 $bookname。所以基本上

     if ("fileONE-") { //code }
    

    这是真的。进行以下更改:

    if      ($bookname == "fileONE-") { echo "This is File 1 - $chapterNo"; }
    elseif  ($bookname == "fileFive-") { echo "This is File 5 - $chapterNo"; }
    

    【讨论】:

    • 我试过$bookname == "fileONE-",但它什么也没做。
    • 你需要找出 $bookname 的实际价值。您的代码在显示误报之前无法正常工作。
    【解决方案2】:

    鉴于您的示例“fileONE-13”,strrpos($filename, '-') 返回 7,因此当您设置 $bookname 时,您实际上是在说“从位置 0 开始从 $filename 获取前 7 个字符”。也就是说,它不会包含您在if 语句中检查的-

    PHP 也使用==,而不是= 进行比较。正如 siggi_pop 已经指出的那样,if ($bookname = "fileONE-")总是在您重新分配$bookname 时返回true

    你的 if 语句应该是这样的:

    if      ($bookname == "fileONE") { echo "This is File 1 - $chapterNo"; }
    elseif  ($bookname == "fileFive") { echo "This is File 5 - $chapterNo"; }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-23
      • 1970-01-01
      • 2011-06-16
      • 1970-01-01
      • 1970-01-01
      • 2013-12-23
      • 2020-06-14
      • 1970-01-01
      相关资源
      最近更新 更多