Tôi biết điều này đã được hỏi/trả lời cách đây không lâu, nhưng cung cấp câu trả lời này vì nó có chức năng tương đương mặc dù nó không phải là một nhà điều hành chuyển nhượng và không ai nhận xét về cách sử dụng của nó cho nối chuỗi chung.
Bạn có thể muốn xem xét việc sử dụng các dòng chức năng sprintf
(documentation) cho nối chuỗi. Nó cung cấp nhiều hơn nữa sanitization và khả năng sử dụng hơn là chỉ kết hợp hai dây với các nhà khai thác chuyển nhượng.
$foo = 'foo';
$append = sprintf('%1$s%2$s', $foo, 'bar');
var_dump($append);
/* string(6) "foobar" */
$prepend = sprintf('%1$s%2$s', 'bar', $foo);
var_dump($prepend);
/* string(6) "barfoo" */
$prependInvert = sprintf('%2$s%1$s', $foo, 'bar');
var_dump($prependInvert);
/* string(6) "barfoo" */
$wrap = sprintf('%2$s%1$s%2$s', $foo, 'bar');
var_dump($wrap);
/* string(6) "barfoobar" */
Tôi thường sử dụng vsprintf
, vì làm việc với mảng dễ quản lý vị trí giá trị hơn so với đối số riêng lẻ.
$vprepend = vsprintf('%2$s%1$s', array('foo', 'bar'));
var_dump($vprepend);
/* string(6) "barfoo" */
Ngoài ra với một mảng giá trị, người ta có thể chỉ đơn giản là implode
tập hợp kết quả của giá trị cho nối chuỗi đơn giản.
var_dump(implode('', array('bar', 'foo')));
/* string(6) "barfoo" */
'$ bar. = $ Foo'? –
Tôi xác nhận cho James 'mặc dù anh ta nên viết một câu trả lời cho nó ... – Christian
Điều đó gắn thêm '$ foo' vào' $ bar', thay vì thêm '$ bar' vào' $ foo'. Kết quả là tương tự, nhưng tôi nghĩ anh ta muốn thay đổi '$ foo'. –