Сравнить переменные PHP - PullRequest
2 голосов
/ 05 июня 2011

Как я могу сравнить две переменные строки, было бы так:

$myVar = "hello";
if ($myVar == "hello") {
//do code
}

И чтобы проверить, присутствует ли переменная $ _GET [] в URL, будет ли это так "

$myVars = $_GET['param'];
if ($myVars == NULL) {
//do code
}

Ответы [ 5 ]

7 голосов
/ 05 июня 2011
    $myVar = "hello";
    if ($myVar == "hello") {
    //do code
    }

 $myVar = $_GET['param'];
    if (isset($myVar)) {
    //IF THE VARIABLE IS SET do code
    }


if (!isset($myVar)) {
        //IF THE VARIABLE IS NOT SET do code
 }

Для справки, что-то, что потрясло меня на несколько дней при первом запуске PHP:

$_GET["var1"] // these are set from the header location so www.site.com/?var1=something
$_POST["var1"] //these are sent by forms from other pages to the php page
5 голосов
/ 05 июня 2011

Для сравнения строк я бы порекомендовал использовать оператор тройного равенства по двойным равным.

// This evaluates to true (this can be a surprise if you really want 0)
if ("0" == false) {
    // do stuff
}

// While this evaluates to false
if ("0" === false) {
    // do stuff
}

Для проверки переменной $ _GET я скорее использую array_key_exists, isset может вернуть false, если ключ существует, но содержимоеимеет значение null

что-то вроде:

$_GET['param'] = null;

// This evaluates to false
if (isset($_GET['param'])) {
    // do stuff
}

// While this evaluates to true
if (array_key_exits('param', $_GET)) {
    // do stuff
}

По возможности избегайте выполнения заданий, таких как:

$myVar = $_GET['param'];

$ _ GET, зависит от пользователя.Таким образом, ожидаемый ключ может быть доступен или нет.Если ключ недоступен при доступе к нему, уведомление о времени выполнения будет активировано.Это может заполнить ваш журнал ошибок, если уведомления включены, или спам ваших пользователей в худшем случае.Просто создайте массив array_key_exists, чтобы проверить $ _GET, прежде чем ссылаться на ключ.

if (array_key_exists('subject', $_GET) === true) {
    $subject = $_GET['subject'];
} else {
    // now you can report that the variable was not found
    echo 'Please select a subject!';
    // or simply set a default for it
    $subject = 'unknown';
}

Источники:

http://ca.php.net/isset

http://ca.php.net/array_key_exists

http://php.net/manual/en/language.types.array.php

1 голос
/ 05 июня 2011

Если вы хотите проверить, установлена ​​ли переменная, используйте isset()

if (isset($_GET['param'])){
// your code
}
0 голосов
/ 05 июня 2011

Вся эта информация указана на веб-сайте PHP в разделе «Операторы»

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

0 голосов
/ 05 июня 2011

Чтобы сравнить переменную со строкой, используйте это:

if ($myVar == 'hello') {
    // do stuff
}

Чтобы увидеть, установлена ​​ли переменная, используйте isset (), например:

if (isset($_GET['param'])) {
    // do stuff
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...