This question already has answers here:
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
Strange print behaviour in PHP? [duplicate]
(2 answers)
Closed 10 years ago.
I was looking at this article about facebook's HipHop Virtual Machine (HHVM) when I noticed this line:
<?php
$u_bytes =
$p_bytes = 100 << 20;
I tested it by running echo 100 << 20; and the value was 104857600. What does << 20 do?
Edit
Based on the answers it's a bitwise operator (bit shift [left]). Example:
100 = 000000000000000000001100100
^ `<< 20` moves this bit 20 bits to the left
104857600 = 110010000000000000000000000
This is a bit shift left.
You can learn more on how it works in PHP directly on PHP Manual: http://php.net/manual/en/language.operators.bitwise.php
Related
This question already has answers here:
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
Closed 3 months ago.
what does the following codeline do?
$this->wordData[$wordCount] = ((#$this->wordData[$wordCount] << $remainingBit) | ($bufferVal >> $bufferBit));
It's a snippet of qrcode of mpdf (line 444). since PHP 8 it throws PHP Warning: Undefined array key 43 for example.
I know # is PHP error-suppression, but since PHP 8 it is working another way as it does before PHP 8.
The part after the "=" --> ((variable << variable) | variable) is that a kind of if than (with | for OR)? I'm confused ;-)
I am teaching myself PHP and would therefore be glad if someone could help me with an explanation for beginners.
Thanks
Andreas
There have been some changes in error suppression in PHP8 - see https://php.watch/versions/8.0/fatal-error-suppression
Note that the << and >> are bitwise operators to shift the bits of a number left or right, respectively. See https://www.php.net/manual/en/language.operators.bitwise.php
This question already has answers here:
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
What does the percent sign mean in PHP?
(6 answers)
Closed 3 years ago.
I just started to learn PHP deeper for Zend PHP certification and I found this code, which actually works. Can someone explain me the logic behind this?
<?php
$num = 20% - 8;
echo $num; // 4
What you're seeing is the modulus operator, which in essence asks "What is the remainder of 20 divided by -8".
So you might ask, why isn't it negative 4? From the manual,
The result of the modulo operator % has the same sign as the dividend — that is, the result of $a % $b will have the same sign as $a.
See the PHP: Arithmetic Operators for more documentation.
% is not per cent, but modulus, cf. https://en.m.wikipedia.org/wiki/Modular_arithmetic
20 = 2 * 8 + 4, therefore, 20 % 8 = 4
This question already has answers here:
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
Closed 7 years ago.
I found this example and i can't understand the result :
$x = 5;
echo $x>>2;
output :
1
Can you explained for me please
Thanks
$a >> $b Shift right Shift the bits of $a $b steps to the right (each step means "divide by two")
So if 5 in binary is: 101
5>>1 is 2 in binary 10
5>>2 is 1 in binary 1
This operator if common in other languages such as C.
Source
This question already has answers here:
Raising to power in PHP
(5 answers)
Closed 7 years ago.
I have a calculation in php like
$outpout = 1.056^(365/10)
But it not calculating in right manner
you can try it like $outpout = (3^3);
Please help me. Thanks in advance.
As of PHP 5.6.0 we have ** operator
If you need 3^3
You can do $x = 3 ** 3 ;
If you are using older version, use
$x = pow(3, 3) ;
In both cases $x will be 27
Source: PHP Documentation
This question already has answers here:
Reference Guide: What does this symbol mean in PHP? (PHP Syntax)
(24 answers)
Closed 9 years ago.
I've been trying to get a code together that would deduce what alternatives have been check in a multi-choice exam, but using sums of powers of two.
I found the following code online, but I'm not sure HOW it works, especially the operator <<. I could not find this on Google or PHPDoc.
Thank you.
$aSums = array();
for ($iCount = 0; $iCount < 32; $iCount++)
{
$iMask = 1 << $iCount;
if (($iNumber & $iMask) != 0)
$aSums[] = $iMask;
}
return $aSums;
It's a bitwise shift left, that is, multiply by 2^N.
It's a bitwise operator Shift left. From PHP documentation:
Shift the bits of $a $b steps to the left (each step means "multiply by two")