PHP在条件下回显

时间:2019-02-10 04:48:18

标签: php arrays string if-statement echo

我有一些文件名为:fileONE-13fileFive-22等。我正在尝试制作一个执行以下操作的php代码:如果在最后一个- = {{1}之前},然后回显某些内容,如果最后一个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"; } ?> 等。但是什么也没做。

2 个答案:

答案 0 :(得分:1)

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

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

您的if语句应如下所示:

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

答案 1 :(得分:0)

您来自VB吗? :)在PHP和其他版本中,您使用==而不= 因此,您到目前为止所做的就是将“ fileONE-”分配给变量$ bookname。所以基本上

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

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

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