有人可以給我一個如何使用PHP三元運算符的例子,它將使用$ _GET(可以在URL中定義)檢查變量,如果它不在URL中,則檢查var被設置在另一個PHP文件中。如果它沒有在URL或其他PHP文件中設置,那麼我希望它等於「默認」。三元運算符問題
三元運算符問題
回答
$myVar = isset($_GET["someVar"]) ? $_GET["someVar"] : (isset($someVar) ? $someVar : "default");
$value = isset($_GET['somevar']) ? $_GET['var'] : $default_value;
在最新的PHP版本,有這樣一個快捷版本:
$值= isset($ _ GET [ 'somevar']):$ DEFAULT_VALUE;
(與第一個版本不一樣)
您可以使用$GLOBALS['nameofvar']
來查看是否已經定義了特定的PHP變量,但如果您正在執行函數內部的檢查,則會出現問題。
這個快捷方式是否像'isset'一樣按預期工作?我的理解是,它會返回表達式的結果(在isset(...)'的情況下這將是'true'),所以你需要使用類似'$ _GET ['somevar' ]?:$ default_value;' – Problematic
如果在腳本查詢中沒有'somevar',那麼'$ _GET ['somevar']'不會存在,isset()將返回false。然而,沒有什麼說你的腳本的其他部分不能在它到達這個三元運算符之前擺弄$ _GET。 –
注意:因爲isset返回一個布爾值,所以如果設置了$ _GET ['somevar']',快捷方式版本中的'$ value'將是布爾值true –
您正在尋找這樣的事情:
if(isset($_GET["MyVar"]))
{
$newVar = $_GET["MyVar"];
}
else if(isset($myVar))
{
$newVar = $myVar;
}
else
{
$newVar = "default";
}
或
$newVar = isset($_GET["MyVar"]) ? $_GET["MyVar"] : (isset($myVar) ? $myVar : "default");
碎紙機打我到三元版本的編輯:) – evasilchenko
- 1. 三元運算符報價問題
- 2. 嵌套三元運算符isset()問題
- 3. 三元運算符
- 4. 三元運算符用法?
- 5. &&使用三元運算符
- 6. 執行三元運算符
- 7. 關於三元運算符..!
- 8. C三元運算符
- 9. 使用三元運算符
- 10. 替代三元運算符
- 11. 三元運算符在foreach
- 12. Ruby三元運算符
- 13. java三元運算符
- 14. 三元運算符用法
- 15. 三元運算符C
- 16. 三元運算符連接
- 17. 三元運算符shorthands?和?:
- 18. 的JavaScript三元運算符
- 19. Linq-to-SQL導致問題的三元運算符?
- 20. 的if/else三元運算符與空白Else語句問題
- 21. 三元運算符;這個語法有什麼問題?
- 22. 在VS2008中使用List方法的三元運算符問題
- 23. 回聲中的三元運算符問題
- 24. Perl中的賦值三元條件運算符問題
- 25. 三元運算符作爲C宏中三元運算符的操作數
- 26. C#++一元運算符增量問題
- 27. 三元運算符意外的T_DOUBLE_ARROW如果運算符
- 28. LINQ中的所有三元運算符?
- 29. 三元運算符的單個返回
- 30. 三元運算符在aria展開angularjs
那麼,你會怎麼做這個*不*三元?一旦完成,改變表格 - 如果可行的話 - 變成一個簡單的練習。 (也就是說,顯示*現有的代碼*以完成所期望的任務)。 – 2011-08-10 21:13:18
你是什麼意思,「檢查var是否設置在另一個PHP文件中」?如果包含這個其他的PHP文件並且該變量不是類的一部分等,它就好像它已經在這個文件中定義一樣,下面的答案應該有所幫助。但如果你的意思是「另一個PHP文件」的其他內容,你應該添加一些細節。 – FrankS
對不起,沒有解釋,但這是一個很好的解釋。基本上,我想顯示各州使用不同的URL爲每個國家,然後我還需要在整個網站的許多頁面顯示這些不同的狀態,我只想在包含之前在每個文件的頂部設置而不必擔心在這些頁面的鏈接中包含查詢字符串。希望這是有道理的! – Zoolander