Tôi muốn ghép 2 biến và do lỗi tôi đã nhập một mã khác và tôi nhận được kết quả lạ.Dấu hiệu đường ống trong Mã PHP
Đây là những gì trông giống như mã:
echo 'Hello World' | 'test';
Result : |e|o World
gì dấu ống làm gì nếu không nối?
Tôi muốn ghép 2 biến và do lỗi tôi đã nhập một mã khác và tôi nhận được kết quả lạ.Dấu hiệu đường ống trong Mã PHP
Đây là những gì trông giống như mã:
echo 'Hello World' | 'test';
Result : |e|o World
gì dấu ống làm gì nếu không nối?
Theo số PHP manual
"|" là "bitwise OR". Các toán tử bitwise cho phép đánh giá và thao tác các bit cụ thể trong một số nguyên.
Example Name Result
$a | $b Or (inclusive or) Bits that are set in either $a or $b are set.
Ví dụ:
$a = 9;
$b = 10;
echo $a | $b;
này sẽ ra số 11 như sau:
1 Byte (8 bits)
Place Value 128 64 32 16 8 4 2 1
$a 0 0 0 0 1 0 0 1 = 9
$b 0 0 0 0 1 0 1 0 = 10
$a | $b 0 0 0 0 1 0 1 1 = 11
Nếu bạn nhận thấy chúng tôi đã 3 bit được thiết lập, trong 8, 2, và 1 cột .. thêm những người lên 8 + 2 + 1 và bạn nhận được 11.
Đối với nối chuỗi đơn giản, sử dụng dấu chấm .
toán tử.
Hy vọng làm rõ điều đó.
cách tuyệt vời để làm cho tôi hiểu .. Tôi đã rất bối rối tại sao 1 | 1 = 2, và 1 | 3 = 3? Và bạn đã dạy tôi rất tốt. Chúa phù hộ bạn :) – MFarooqi
Đó là các nhà điều hành OR
Bitwise
Nếu bạn muốn concat chuỗi bạn nên sử dụng dot
echo "ABC" . "DEF";
Ví dụ về việc sử dụng OR
Bitwise
// base 16 - result in 0x03
$result = 0x01 | 0x02;
// base 2
0000 0001
0000 0010
---------
0000 0011
Tôi đoán rằng đó là một Bitwise OR
Điều đó | có nghĩa là 'bitwise OR', sẽ chuyển đổi chuỗi thành nhị phân, sau đó chồng chúng lên nhau để tính kết quả bằng cách sử dụng OR hợp lý cho mỗi vị trí, nếu chuỗi có 1 ở vị trí đó, thì kết quả sẽ có 1, nếu không , bạn sẽ nhận được 0.
Trong trường hợp này, nó thực hiện điều này với mã ký tự ascii bằng số của mỗi ký tự, đôi khi dẫn đến mã ký tự mới và đôi khi chuyển sang thùng rác, sẽ không hiển thị. Đây là lý do tại sao sự khởi đầu của 'Hello world' bị rối tung lên, nơi nó được phủ lên với 'test', nhưng kết thúc là tốt bởi vì nó không có bất kỳ 1s được thêm vào nó bởi một chuỗi khác tại thời điểm đó. Xem here để biết ví dụ chi tiết hơn từ hướng dẫn sử dụng (sử dụng XOR, nhưng cùng một ý tưởng).
Sử dụng. cho nối.
http://www.php.net/manual/en/language.operators.bitwise.php –
trong ngôn ngữ nào '|' ghép nối? –
Theo như tôi biết, hầu hết các ngôn ngữ không sử dụng '|' để chuỗi concat. Thông thường nó sử dụng '.' hoặc' + ' – Rezigned