PHP回声这一点,如果条件

问题描述 投票:0回答:2

我有一个名为像一些文件: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
2个回答
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"; }

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"; }
© www.soinside.com 2019 - 2024. All rights reserved.