为什么空字符串不起作用,但null可以完美工作?

时间:2018-08-17 03:21:18

标签: php string null

我只想在php中发出GET请求,这是我的要求,

URL:http://localhost/test.php?firstName=Sagar&secondName=Gautam

预期产量:Sagar Gautam,你好

URL:http://localhost/test.php

预期输出:您好,访客

这是代码

test.php

<?php 
    $firstName = $_GET['firstName'];
    $secondName = $_GET['secondName'];

    $response = '';

    if($firstName!='' && $secondName!='')
    {
        $response = "Hi ".$firstName.' '.$secondName;
    }
    else
    {
        $response = "Hi Guest";
    }

    echo $response;
?>

上面的代码不起作用,但是当我在这样的if语句中将空字符串更改为null时

if($firstName!=null && $secondName!=null)

然后一切正常。

我已经访问了以下问题:In PHP, what is the differences between NULL and setting a string to equal 2 single quotes,但不知道为什么上面的代码不能与空字符串一起使用。

如果有人解释出了什么问题,那将是很好的。

2 个答案:

答案 0 :(得分:0)

最好检查isset() $_GET变量

$firstName = isset($_GET['firstName']) ? $_GET['firstName'] : '';
$secondName = isset($_GET['secondName']) ?  $_GET['firstName']: '';

我们总是得到不为null的值。

仅需注意一点:isset也会为您注意null大小写。 isset($null_value) -> false

答案 1 :(得分:0)

尝试

from django.core.mail import send_mail
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.shortcuts import render
from . import forms

def contact(request):
    form = forms.ContactForm()
    if request.method == 'POST':
        form = forms.ContactForm(request.POST)
        if form.is_valid():
            send_mail(
                form.cleaned_data['name'],
                form.cleaned_data['inquiry'],
                form.cleaned_data['from_email'],
                ['admin@sample.com'],
            )
            return HttpResponseRedirect(reverse('contact'))
    return render(request, 'contact.html', {'form': form})   

希望此帮助