构建URL,确定http / s

时间:2013-06-20 11:58:00

标签: php url

首先,我想让你们知道我不是PHP专家,我知道一些基础知识。我正在自学,这就是为什么我要向你们求助。

我进行了一些搜索,但我不知道应该搜索什么。

整个块的代码行

$base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') ? 'https' : 'http';

所以代码块用于构建url。这行代码选择是http还是https。

(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')

此行检查是否设置了https。到现在为止还好。

 ? 'https' : 'http';

这是我需要帮助的地方。什么是'?'和':'呢?

提前致谢。 如果你们可以向我推荐一些我可以学习的书籍,网站或教程,也会很棒。

亲切的问候

4 个答案:

答案 0 :(得分:0)

这是ternary operator

如果?前面的条件为:,则会返回?true之间的值。如果条件为:,则false之后的值。

我建议一般阅读PHP手册,它提供了有关PHP的几乎所有主题的大量信息。

答案 1 :(得分:0)

这是if - else combo

的简写

statement ? code 1 : code 2

相当于

if( statement ) { code 1 } else { code 2 }

http://www.php.net/manual/en/language.operators.comparison.php

答案 2 :(得分:0)

答案 3 :(得分:0)

$base_root = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') 

? 'https' : 'http';
this is like if else statement if above line is true then $base_root will assigned with 'https'(which is just after ?) if it is false then it will get assigned with 'http'(which is after :)

只需检查以下情况即可轻松理解......

if((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on')){
    $base_root = 'https';
}else{
    $base_root = 'http';
}