Hướng dẫn dùng shifting array trong PHP
Định nghĩa Hàm Show Hàm Cú pháp Hàm array_shift() trong PHPDưới đây là cú pháp của hàm
Tham số array: Bắt buộc. Xác định một mảng Trả về giá trị Trả về phần tử đầu tiên của mảng và nếu mảng là trống (hoặc không là một mảng), thì sẽ trả về NULL. Ví dụ minh họa cách sử dụng hàm array_shift() trong PHP:
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả: Xem thêm Hàm trong php Hàm Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức. Cú phápCú pháp: Trong đó:
Ví dụCode $array = array( "php", "js", "html", "css" ); echo array_shift($array); echo ""; print_r($array); echo ""; Kết quả php Array ( [0] => js [1] => html [2] => css ) Hàm trả về Bài viết này được đăng tại [free tuts .net] Tham khảo: php.net
Hướng dẫn cách sử dụng hàm array_shift() về mảng trong lập trình PHP Tác dụng của hàm array_shift()The The following table summarizes the technical details of this function.
SyntaxThe basic syntax of the The following example shows the
Note: If the array keys are numeric, as in the above example, they will be reset to start from 0. However, arrays using associative or string keys will not be affected. ParametersThe
More ExamplesHere're some more examples showing how The following example shows how to remove the first element from an associative array.
Bài viết này đã giúp ích cho bạn?Bài viết mớiBitwise operators allow evaluation and manipulation of specific bits within an integer. Bitwise Operators
Bit shifting in PHP is arithmetic. Bits shifted off either end are discarded. Left shifts have zeros shifted in on the right while the sign bit is shifted out on the left, meaning the sign of an operand is not preserved. Right shifts have copies of the sign bit shifted in on the left, meaning the sign of an operand is preserved. Use parentheses to ensure the desired precedence. For example, If both operands for the If the operand for the Both operands and the result for the PHP's error_reporting ini setting uses bitwise values,
providing a real-world demonstration of turning
bits off. To show all errors, except for notices,
the php.ini file instructions say to use:
This works by starting with E_ALL:
00000000000000000111011111111111
Then taking the value of E_NOTICE...
00000000000000000000000000001000
... and inverting it via Another way to accomplish that is using XOR ( error_reporting can also be used to demonstrate turning bits on.
The way to show just errors and recoverable errors is:
This process combines E_ERROR
00000000000000000000000000000001
and
00000000000000000001000000000000
using the OR ( Example #1 Bitwise AND, OR and XOR operations on integers
--------- --------- -- --------- The above example will output: --------- --------- -- --------- result value op test --------- --------- -- --------- Bitwise AND ( 0 = 0000) = ( 0 = 0000) & ( 5 = 0101) ( 1 = 0001) = ( 1 = 0001) & ( 5 = 0101) ( 0 = 0000) = ( 2 = 0010) & ( 5 = 0101) ( 4 = 0100) = ( 4 = 0100) & ( 5 = 0101) ( 0 = 0000) = ( 8 = 1000) & ( 5 = 0101) Bitwise Inclusive OR ( 5 = 0101) = ( 0 = 0000) | ( 5 = 0101) ( 5 = 0101) = ( 1 = 0001) | ( 5 = 0101) ( 7 = 0111) = ( 2 = 0010) | ( 5 = 0101) ( 5 = 0101) = ( 4 = 0100) | ( 5 = 0101) (13 = 1101) = ( 8 = 1000) | ( 5 = 0101) Bitwise Exclusive OR (XOR) ( 5 = 0101) = ( 0 = 0000) ^ ( 5 = 0101) ( 4 = 0100) = ( 1 = 0001) ^ ( 5 = 0101) ( 7 = 0111) = ( 2 = 0010) ^ ( 5 = 0101) ( 1 = 0001) = ( 4 = 0100) ^ ( 5 = 0101) (13 = 1101) = ( 8 = 1000) ^ ( 5 = 0101) Example #2 Bitwise XOR operations on strings
Example #3 Bit shifting on integers
"\n--- BIT SHIFT RIGHT ON NEGATIVE INTEGERS ---\n";$val = -4; Output of the above example on 32 bit machines: --- BIT SHIFT RIGHT ON POSITIVE INTEGERS --- Expression: 2 = 4 >> 1 Decimal: val=4 res=2 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000000010 NOTE: copy of sign bit shifted into left side Expression: 1 = 4 >> 2 Decimal: val=4 res=1 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000000001 Expression: 0 = 4 >> 3 Decimal: val=4 res=0 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000000000 NOTE: bits shift out right side Expression: 0 = 4 >> 4 Decimal: val=4 res=0 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000000000 NOTE: same result as above; can not shift beyond 0 --- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- Expression: -2 = -4 >> 1 Decimal: val=-4 res=-2 Binary: val=11111111111111111111111111111100 res=11111111111111111111111111111110 NOTE: copy of sign bit shifted into left side Expression: -1 = -4 >> 2 Decimal: val=-4 res=-1 Binary: val=11111111111111111111111111111100 res=11111111111111111111111111111111 NOTE: bits shift out right side Expression: -1 = -4 >> 3 Decimal: val=-4 res=-1 Binary: val=11111111111111111111111111111100 res=11111111111111111111111111111111 NOTE: same result as above; can not shift beyond -1 --- BIT SHIFT LEFT ON POSITIVE INTEGERS --- Expression: 8 = 4 << 1 Decimal: val=4 res=8 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000001000 NOTE: zeros fill in right side Expression: 1073741824 = 4 << 28 Decimal: val=4 res=1073741824 Binary: val=00000000000000000000000000000100 res=01000000000000000000000000000000 Expression: -2147483648 = 4 << 29 Decimal: val=4 res=-2147483648 Binary: val=00000000000000000000000000000100 res=10000000000000000000000000000000 NOTE: sign bits get shifted out Expression: 0 = 4 << 30 Decimal: val=4 res=0 Binary: val=00000000000000000000000000000100 res=00000000000000000000000000000000 NOTE: bits shift out left side --- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- Expression: -8 = -4 << 1 Decimal: val=-4 res=-8 Binary: val=11111111111111111111111111111100 res=11111111111111111111111111111000 NOTE: zeros fill in right side Expression: -2147483648 = -4 << 29 Decimal: val=-4 res=-2147483648 Binary: val=11111111111111111111111111111100 res=10000000000000000000000000000000 Expression: 0 = -4 << 30 Decimal: val=-4 res=0 Binary: val=11111111111111111111111111111100 res=00000000000000000000000000000000 NOTE: bits shift out left side, including sign bit Output of the above example on 64 bit machines: --- BIT SHIFT RIGHT ON POSITIVE INTEGERS --- Expression: 2 = 4 >> 1 Decimal: val=4 res=2 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000000010 NOTE: copy of sign bit shifted into left side Expression: 1 = 4 >> 2 Decimal: val=4 res=1 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000000001 Expression: 0 = 4 >> 3 Decimal: val=4 res=0 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000000000 NOTE: bits shift out right side Expression: 0 = 4 >> 4 Decimal: val=4 res=0 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000000000 NOTE: same result as above; can not shift beyond 0 --- BIT SHIFT RIGHT ON NEGATIVE INTEGERS --- Expression: -2 = -4 >> 1 Decimal: val=-4 res=-2 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=1111111111111111111111111111111111111111111111111111111111111110 NOTE: copy of sign bit shifted into left side Expression: -1 = -4 >> 2 Decimal: val=-4 res=-1 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=1111111111111111111111111111111111111111111111111111111111111111 NOTE: bits shift out right side Expression: -1 = -4 >> 3 Decimal: val=-4 res=-1 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=1111111111111111111111111111111111111111111111111111111111111111 NOTE: same result as above; can not shift beyond -1 --- BIT SHIFT LEFT ON POSITIVE INTEGERS --- Expression: 8 = 4 << 1 Decimal: val=4 res=8 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000001000 NOTE: zeros fill in right side Expression: 4611686018427387904 = 4 << 60 Decimal: val=4 res=4611686018427387904 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0100000000000000000000000000000000000000000000000000000000000000 Expression: -9223372036854775808 = 4 << 61 Decimal: val=4 res=-9223372036854775808 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=1000000000000000000000000000000000000000000000000000000000000000 NOTE: sign bits get shifted out Expression: 0 = 4 << 62 Decimal: val=4 res=0 Binary: val=0000000000000000000000000000000000000000000000000000000000000100 res=0000000000000000000000000000000000000000000000000000000000000000 NOTE: bits shift out left side --- BIT SHIFT LEFT ON NEGATIVE INTEGERS --- Expression: -8 = -4 << 1 Decimal: val=-4 res=-8 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=1111111111111111111111111111111111111111111111111111111111111000 NOTE: zeros fill in right side Expression: -9223372036854775808 = -4 << 61 Decimal: val=-4 res=-9223372036854775808 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=1000000000000000000000000000000000000000000000000000000000000000 Expression: 0 = -4 << 62 Decimal: val=-4 res=0 Binary: val=1111111111111111111111111111111111111111111111111111111111111100 res=0000000000000000000000000000000000000000000000000000000000000000 NOTE: bits shift out left side, including sign bit Warning Use functions from the gmp extension for bitwise manipulation on numbers beyond wbcarts at juno dot com ¶ 10 years ago
setFlag($flag, $value) grayda dot NOSPAM at DONTSPAM dot solidinc dot org ¶ 13 years ago
m0sh at hotmail dot com ¶ 14 years ago
frankemeks77 at yahoo dot com ¶ 10 years ago
ASchmidt at Anamera dot net ¶ 3 years ago
COMBO_BC = FLAG_B | FLAG_C;$bitmask = 0b000;// Setting individual flags. zlel grxnslxves13 at hotmail dot com~=s/x/ee/g ¶ 16 years ago
$a1 ^ $b1) |($a2 ^ $b2)) + $c; S?b. ¶ 17 years ago
zooly at globmi dot com ¶ 12 years ago
bindec(substr($binary, $bits).substr($binary, 0, $bits)) zewt at hotmail dot com ¶ 15 years ago
Silver ¶ 13 years ago
amckenzie4 at gmail dot com ¶ 12 years ago
vivekanand dot pathak25 at gmail dot com ¶ 9 years ago
icy at digitalitcc dot com ¶ 17 years ago
DEFINE('INTEGER_LENGTH',31); // Stupid signed bit.class bitmask forlamp at msn dot com ¶ 14 years ago
ivoras at gmail dot com ¶ 11 years ago
spencer-p-moy at example dot com ¶ 10 years ago
josh at joshstrike dot com ¶ 11 years ago
masksOf($n,$bits) {
cw3theophilus at gmail dot com ¶ 13 years ago
aba at example dot com ¶ 11 years ago
erich at seachawaii dot com ¶ 9 years ago
Adam ¶ 12 years ago
sag at ich dot net ¶ 9 years ago
Anonymous ¶ 12 years ago
Bob ¶ 13 years ago
Tbrendstrup ¶ 16 years ago
Eric Swanson ¶ 17 years ago
Core Xii ¶ 12 years ago
Anonymous ¶ 10 years ago
biziclop at vipmail dot hu ¶ 2 years ago
'This PHP uses ' . count_set_bits(-1) .'-bit integers.'; joey ¶ 6 years ago
bartbons at debster.nl ¶ 14 years ago
Nina Cording ¶ 16 years ago
bitRotate($value,$amount,$bits) { luis at rosety dot com ¶ 6 years ago
J. Ketting ¶ 8 years ago
?> |