tôi có mã này:Tại sao chuỗi hoạt động như một mảng trong PHP 5.3?
$tierHosts['host'] = isset($host['name']) ? $host['name'] : $host;
Nó làm việc tốt trong PHP 5.5, nhưng trong PHP 5.3 điều kiện trả về true khi $host
chứa chuỗi như pjba01
. Nó trả về chữ cái đầu tiên của $tierHosts['host']
, nghĩa là, p
.
Có gì sai với mã của tôi?
Bạn có thể bỏ qua hành vi này bằng '(is_array ($ host) && isset ($ host [" name "]))'. Luôn kiểm tra loại bạn cần nếu không rõ loại bạn sẽ nhận được. Để biết thêm chi tiết về hành vi bạn mô tả, hãy xem câu trả lời của Rizier123s. – TobiasJ
Nếu bạn quan tâm đến một số thứ khác có thể khiến bạn mất cảnh giác trong PHP, hãy đọc phần này. http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/ – Almo
Tại sao chuỗi hoạt động như một mảng ...? Bởi vì chúng là một mảng ... – SnakeDoc