所以我无法理解这句话。
我想要做的是从$ _SESSION [“user_name”]获取登录的人,如果它与两个可能的“admin”用户中的一个匹配,则提供额外的功能。但它始终是真的。
对于这个例子,我将有三个用户:Emma,John和Robert。艾玛和约翰应该被允许额外的“管理功能”,但罗伯特不被允许。所以......
我的陈述是:
if ($_SESSION["user_name"] === "emma" or "john"){
//give extra functionality as well as basic functionality
} else {
//give just basic functionality
但这总是触发真实,所以当我使用用户名Robert登录我的测试帐户时,他也获得了额外的功能。
我尝试将"
的引号$_SESSION
更改为撇号'
,并尝试将运算符从===
更改为==
。我甚至试过=
,但发现这很难将我的$_SESSION
变量设置为“emma”。
我做错了什么因为我似乎无法理解它?
如果值得注意,此if
语句包含在使用冒号if
和:
而非括号endif
的父{}
语句中。父{H} if
语句纯粹用于根据返回的列为空或用户名称来决定输出哪些功能。
答案 0 :(得分:4)
您需要重新声明完整条件:
if ($_SESSION["user_name"] === "emma" or $_SESSION["user_name"] === "john"){
//give extra functionality as well as basic functionality
} else {
...
}
更新说明:
if语句的伪代码语法是:
if ([some condition] [and/or] [another condition]) {
// then do some stuff
}
每个[条件]语句都被评估为"truthy" or "falsey"。因此,您的原始问题可以重写为:
if ([$_SESSION["user_name"] is equal to "emma"] or ["john" is not false, 0, or null]) {
// we will always get in here
}
由于“john”将永远是“truthy”(它不是false,null,0),它将始终通过条件。
答案 1 :(得分:3)
术语()
作为表达式为append
:
"john"
将评估为true并且不会抛出任何语法错误。
你想要的是:
true
答案 2 :(得分:2)
将此分解为步骤可能会有所帮助。 PHP将评估左侧的所有内容或查看它是真还是假。然后它将评估或者右侧的内容。
事实证明, public void showMeMyDream(ActionEvent e) throws IOException
{
showSelectedDream();
contentID.getChildren().clear(); contentID.getChildren().add(FXMLLoader.load(getClass().getResource("/fxml/showDreamFXML.fxml")));
}
评估为<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.*?>
<?import javafx.scene.text.*?>
<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.VBox?>
<AnchorPane maxHeight="1.7976931348623157E308" nodeOrientation="LEFT_TO_RIGHT" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="Controller.ShowDreamController">
<children>
<VBox maxHeight="1.7976931348623157E308" nodeOrientation="LEFT_TO_RIGHT" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<GridPane>
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0" />
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES" />
<RowConstraints minHeight="10.0" vgrow="ALWAYS" />
</rowConstraints>
<children>
<Label text="Label" GridPane.rowIndex="5" />
<Label fx:id="showDreamContent" text="Label" wrapText="true" GridPane.columnIndex="1" GridPane.hgrow="ALWAYS" GridPane.rowIndex="5" GridPane.vgrow="ALWAYS" />
<Label text="Label" GridPane.rowIndex="4" />
<Label fx:id="showDreamLength" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="4" />
<Label text="Label" GridPane.rowIndex="3" />
<Label fx:id="showDreamType" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="3" />
<Label fx:id="showDreamMem" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="2" />
<Label fx:id="showDreamDate" text="Label" GridPane.columnIndex="1" GridPane.rowIndex="1" />
<Label text="Label" />
<Label text="Label" GridPane.rowIndex="1" />
<Label text="Label" GridPane.rowIndex="2" />
<Label fx:id="showDreamTitle" text="Label" GridPane.columnIndex="1" />
</children>
</GridPane>
<HBox>
<children>
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>
</children>
</VBox>
</children>
</AnchorPane>
。
您正在寻找:
"john"
答案 3 :(得分:2)
尝试这样的事情
if (($_SESSION["user_name"] === "emma") || ($_SESSION["user_name"] === "john"))
{
//do something
}
else
{
//other thing
}