I ask if I can to use a variable condition on PYTHON like PHP :  &lt;?php $var = (5 = 5) ? true : false; ?&gt;
852
If Python does not have a ternary conditional operator, is it possible to simulate one using other language constructs?
22801
In many languages assignments are legal in conditions. I never understood the reason behind this. Why would you write:  if (var1 = var2) {   ... }   instead of:  var1 = var2; if (var1) {   ... }
25759
I have encountered comparisions of variables to string literals multiple times over the years which had one character prefixing the variable and the literal, e.g.  if [ "x$A" = "xtrue" ]; then   in order to check whether $A is "true".  I assume this is done to achieve shell compatibility or to work around a longterm bug, an unintuitive behavior, etc. Nothing obvious comes to mind.  Today I figured I want to know the reason, but my research didn't turn up anything. Or maybe it's just me making something out of a rather frequent exposure to rare occurances.  Is this practice still useful, maybe even best?
39889
This script:  a=2 [[ "$a" -eq 2 ]] &amp;&amp; echo yes1 [[  $a  -eq 2 ]] &amp;&amp; echo yes2 [[   a  -eq 2 ]] &amp;&amp; echo yes3 [[  "a" -eq 2 ]] &amp;&amp; echo yes4   Does not work in  (and some others that do not have [[ ). Fails the last two "yes tests" in  (BusyBox ash). As I expected.  But, quite UN expectly: This happens when the arithmetic  » -eq «  is being used (and some other). Prints all the four yes in , , , ,  and .  Q's  Is this the natural side effect of "Arithmetic Expansion" being applied to labels like (a) ?. (nothing to see, move along ?)  Should (a) still be expanded as a variable when quoted: "a"?  Is this documented somewhere I haven't look into yet?  Or, Is a simple (very old) bug?  Edit  To really get you thinking, check this:  a=2; b=2  [[ "$a" -eq "$b"                 ]] &amp;&amp; echo yes1 [[  $a  -eq "$b"                 ]] &amp;&amp; echo yes2 [[   a  -eq "$b"                 ]] &amp;&amp; echo yes3 [[  "a" -eq "$b"                 ]] &amp;&amp; echo yes4 [[ "$a" -eq "$b" &amp;&amp; "$a" == "$b" ]] &amp;&amp; echo new1 [[  $a  -eq "$b" &amp;&amp;  $a  == "$b" ]] &amp;&amp; echo new2 [[   a  -eq "$b" &amp;&amp;   a  == "$b" ]] &amp;&amp; echo new3 [[  "a" -eq "$b" &amp;&amp;  "a" == "$b" ]] &amp;&amp; echo new4   All yes work, only new1 and new2 do. The var a is not being expanded in new3 &amp; 4.  That means that shells switch mode (Arithmetic -- String) in the middle of the evaluation.  This doesn't seem so obvious to me. At least, is not simple, IMO.  Note that ash does it in a different way. And also report the error.  Conclusion:  I do not know the correct answer. But I suspect (looking at so many shells doing it exactly the same way) that it is a very well known way (to developers) in which this tests should work. It should be up to us to understand the fact and adapt.  Seems that for numeric -eq the only possible 'Conditional Expression' to apply is:  exp1 -eq exp2           true if exp1 is numerically equal to exp2.   Which makes both sides of the -eq "Arithmetic expressions"  While for the == the only possible 'Conditional Expression' to apply is:  string == pattern           true if string matches pattern. ....   Which makes the left hand side an string (no expansion?) and the right hand side a pattern (which really do not apply to the test I presented as all were quoted on the right side to avoid this complexity. So, right hand side defaults (being quoted) to an string also (no arithmetic expansion here).  But maybe I am more confused than I though :-)  What do you say?
30444
So...here is part of my code for a plugin.  I'm a newb of sorts so be kind.  I've read up on global variables but I can't seem to get it to work and I've read you shouldn't use them anyway.  So what would be the best way to write the code below without having to re-declare the variables for each function?  Here is the  if necessary.  // Display the product badge on the shop page  add_action( 'woocommerce_after_shop_loop_item_title', 'wc_simple_product_badge_display_shop', 30 ); function wc_simple_product_badge_display_shop() {     $title = get_post_meta( get_the_ID(), '_wc_simple_product_badge_title', true ); // badge title     $class = get_post_meta( get_the_ID(), '_wc_simple_product_badge_class', true ); // badge class     $duration = get_post_meta( get_the_ID(), '_wc_simple_product_badge_duration', true ); // badge duration     $postdate = get_the_time( 'Y-m-d' ); // post date     $postdatestamp = strtotime( $postdate ); // post date in unix timestamp     $difference = round ((time() - $postdatestamp) / (24*60*60));  // difference in days between now and product's post date      if ( !empty( $title ) &amp;&amp; empty( $duration ) || !empty( $title ) &amp;&amp; $difference &lt;= $duration ){ // Check to see if there is a title and the product is still within the duration timeframe if specified         $class = !empty( $class ) ? $class : '';         echo '&lt;span class="wc_simple_product_badge ' . $class . '"&gt;' . $title . '&lt;/span&gt;';     } }  // Display the product badge on the single page  add_filter( 'woocommerce_single_product_image_html', 'wc_simple_product_badge_display_single' );     function wc_simple_product_badge_display_single( $img_html ) {     $title = get_post_meta( get_the_ID(), '_wc_simple_product_badge_title', true ); // badge title     $class = get_post_meta( get_the_ID(), '_wc_simple_product_badge_class', true ); // badge class     $duration = get_post_meta( get_the_ID(), '_wc_simple_product_badge_duration', true ); // badge duration     $single_opt = get_post_meta( get_the_ID(), '_wc_simple_product_badge_single_page_option', true ); // badge on single page     $postdate = get_the_time( 'Y-m-d' ); // post date     $postdatestamp = strtotime( $postdate ); // post date in unix timestamp     $difference = round ((time() - $postdatestamp) / (24*60*60));  // difference in days between now and product's post date      if ( !empty( $title ) &amp;&amp; empty( $duration ) &amp;&amp; $single_opt === 'yes' || !empty( $title ) &amp;&amp; $difference &lt;= $duration &amp;&amp; $single_opt === 'yes' ){ // Check to see if there is a title and the product is still within the duration timeframe ()if specified) and the checkbox is checked to show on single page view         $class = !empty( $class ) ? $class : '';         echo '&lt;span class="wc_simple_product_badge ' . $class . '"&gt;' . $title . '&lt;/span&gt;';         return $img_html; }      elseif ( $single_opt === 'no' ) { // Check to see if the checkbox is unchecked to show on single page view         return $img_html;     }  }
29869
In php, I often need to map a variable using an array ... but I can not seem to be able to do this in a one liner. c.f. example:  // the following results in an error: echo array('a','b','c')[$key];  // this works, using an unnecessary variable: $variable = array('a','b','c'); echo $variable[$key];   This is a minor problem, but it keeps bugging every once in a while ... I don't like the fact, that I use a variable for nothing ;)
3757
I have a script running on Linux that accepts some parameters. I would like to do something like:    if [[ $CONDITION == "true" ]]; then     script param1 --param2   else   script param1   fi    I would like to avoid the forking path of the if. Is there a more optimal way to pass the second parameter?
43236
I'm attempting to loop through an array of strings, and do something a little different with one of the values.  The string comparison fails on every element.  arr[0]='red' arr[1]='blue' arr[2]='yellow' arr[3]='green'  ## now loop through the above array for i in "${arr[@]}" do         if [ "$i"="green" ];         then                 echo "i('$i') is equal to green"         else                 echo "i('$i') is not equal to green"         fi  done   I've also tried (with the same result):   if [ "$i"='green' ];   and   if [ $i='green' ];   and   if [ $i="green" ];   Output of each of the above:   i('red') is equal to green i('blue') is equal to green i('yellow') is equal to green i('green') is equal to green   What am I doing wrong with the comparison?
81188
Just wondering if there is anything built-in to Javascript that can take a Form and return the query parameters, eg: "var1=value&amp;var2=value2&amp;arr[]=foo&amp;arr[]=bar..."  I've been wondering this for years.
5832
I want to write a function in Python that returns different fixed values based on the value of an input index.    In other languages I would use a switch or case statement, but Python does not appear to have a switch statement.  What are the recommended Python solutions in this scenario?
77730
Let's suppose I've declared the following variables:  $ var='$test' $ test="my string"   If I print their contents I see the following:  $ echo $var $test  $ echo $test my string   I'd like to find a way to print the content of the content of $var (which is the content of $test). So I tried to do the following:  $ echo $(echo $var) $test   But here the result is $test and not "my string"... Is it possible to print the content of the content of variables using bash?
30702
Is there a way of using an 'OR' operator or equivalent in a PHP switch?  For example, something like this:  switch ($value) {      case 1 || 2:         echo 'the value is either 1 or 2';         break; }
27528
I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing.    Is there a function that can do this easily?  For example:  $string1 = "I am looking for a way to pull the first 100 characters from a string variable to put in another variable for printing."; $string2 = 100charfunction($string1); print $string2   To get:  I am looking for a way to pull the first 100 characters from a string vari
107670
Why is it bad to name a variable id in Python?
60594
I want to try simple script  flag=false while !$flag do    read x    if [ "$x" -eq "true" ]    then      flag=true    fi    echo "${x} : ${flag}" done   But when I run it, if I type true, I will see that x="true" and flag="true", but the cycle doesn't end. What is wrong with the script? How can I properly invert a boolean variable?
8481
What is the easiest way to encode a PHP string for output to a JavaScript variable?  I have a PHP string which includes quotes and newlines.  I need the contents of this string to be put into a JavaScript variable.  Normally, I would just construct my JavaScript in a PHP file, à la:  &lt;script&gt;   var myvar = "&lt;?php echo $myVarValue;?&gt;"; &lt;/script&gt;   However, this doesn't work when $myVarValue contains quotes or newlines.
41227
A lot of times in Perl, I'll do something like this:  $myhash{foo}{bar}{baz} = 1   How would I translate this to Python? So far I have:  if not 'foo' in myhash:     myhash['foo'] = {} if not 'bar' in myhash['foo']:     myhash['foo']['bar'] = {} myhash['foo']['bar']['baz'] = 1   Is there a better way?