[asterisk-users] Single = sign and double == sign.What is the difference and when to use the two properly?

A J Stiles asterisk_list at earthshod.co.uk
Fri Jan 11 11:20:23 CST 2013


On Friday 11 January 2013, penguin wrote:
> quick question that leaves alittle confusion here. Im confused on the
> difference or when to use the other if i have 1 = sign or 2 == signs .. so
> If i had
> 
> exten => _XXXX,1,answer()
>     same=> n,Set($[${a}==1]?true:false]  <--double equal sign
>     same => n(true),Goto(main,s,1)
>     same=> n(false), Hangup()
> would this be saying the same thing as above then?
> 
> exten => _XXXX,answer()
>     same=> n,Set($[${a}=1]?true:false] <-- single equal sign
> 
> in essence wouldn't i get the same result ? im confused on the double and
> single equal sign and when to use the difference of the two. Would i get
> the same result in both these expressions?

Generally, one = sign means you're telling. Two == signs means you're asking.

It's amusing  (for sadists)  to see ex-BASIC programmers trip up over this and 
write something like this:

if (denominator = 0) {
    printf ("Can't divide by zero!\n");
} else {
    answer = numerator / denominator
};

This will never print "Can't divide by zero!" because you are actually 
assigning a value to a variable right there in the conditional, and returning 
the assigned value.  Since this is zero, the if() will fail and drop through 
to the else clause -- and then, just to confuse you, the program will crash 
with "Floating point exception" anyway.

-- 
AJS

Answers come *after* questions.



More information about the asterisk-users mailing list