Nếu có thì có cách nào để truy cập vào một var được định nghĩa trong một đoạn mã đoạn mã PHP khác không?Mỗi đoạn mã PHP trong thẻ <?php> đều có phạm vi biến riêng không?
Trả lời
Không, họ không làm như vậy. Các thẻ <?php ?>
riêng biệt có cùng phạm vi biến. Bạn có thể truy cập bất kỳ biến nào được khai báo từ bất kỳ phạm vi nào:
<?php $foo = 4; ?>
<?php echo $foo; /* will echo 4 */ ?>
Khái niệm phạm vi duy nhất trong PHP tồn tại cho các hàm hoặc phương pháp. Để sử dụng biến toàn cục trong hàm hoặc phương thức, bạn phải sử dụng mảng $GLOBALS
hoặc khai báo global $theVariableINeed;
bên trong hàm của mình.
Không, theo mặc định tất cả các tệp có cùng phạm vi trong PHP. Phạm vi duy nhất bạn nhận được là sử dụng các lớp hoặc chức năng.
Nếu bạn có
<php
$a = '111';
?>
và
<php
echo $a
?>
trong cùng một trang, nó sẽ sản xuất 111, ý nghĩa, nó nhận ra các biến từ đoạn PHP đầu tiên.
Phạm vi biến đổi trong PHP không hoạt động như thế.
Điểm biến đổi đang hoạt động trong các lớp và chức năng. Ví dụ:
<?php $a = 10 ?>
<?php echo $a; ?>
Điều này sẽ hiệu quả.
Tuy nhiên:
<?php
$a = 10;
function get_a(){
echo $a;
}
?>
Cái này sẽ không hoạt động. Không hiển thị lỗi $ a value hoặc NOTICE (tùy thuộc vào cấu hình của bạn)
Để biết thêm thông tin, bạn có thể see this page.
Bạn có thể nghĩ về các phần của tập lệnh AREN'T bên trong <?php ?>
tương đương với câu lệnh echo, ngoại trừ không có bất kỳ phép nội suy nào của các biến, dấu ngoặc kép, v.v. - chỉ <?php ?>
. Vì vậy, ví dụ, bạn thậm chí có thể làm điều gì đó như thế này:
<?php if (42) { ?> This will only be output if 42 is true. <?php } ?>
Lưu ý: Tôi không nói đây là một ý tưởng hay để làm, nó chỉ minh họa quan điểm của tôi. –
Tính năng này cực kỳ hữu ích cho mã được tạo tự động, nhưng tôi không muốn đọc hoặc viết bản thân mình. – zneak
So tổng. Nhưng hey PHP đã đi trước JSX: D – Askdesigners
- 1. IE có tạo phạm vi mới cho mỗi thẻ tập lệnh không?
- 2. PHP, một phạm vi biến lẻ?
- 3. Phạm vi biến trong C++
- 4. Biến tĩnh và biến toàn cục đều nằm trong phân đoạn dữ liệu. Tuy nhiên, biến tĩnh có phạm vi giới hạn. Tại sao?
- 5. PHP, xem phạm vi ngày có nằm trong một phạm vi ngày khác không
- 6. Phạm vi mã PHPUnit
- 7. biến toàn cầu không có phạm vi toàn cầu
- 8. Tiêu đề phạm vi nội dung HTTP có tương thích với mã hóa chuyển đoạn không?
- 9. python biến phạm vi
- 10. Xác định xem biến có nằm trong phạm vi không?
- 11. biến phạm vi trong d3 javascript
- 12. Lambda biến phạm vi
- 13. PHP đóng cửa Phạm vi của các biến
- 14. Đóng PHP và phạm vi biến toàn cầu tiềm ẩn
- 15. Phạm vi mã trong monotouch
- 16. Phạm vi chênh lệch biến đổi giữa PHP và C: phạm vi khối không chính xác giống nhau?
- 17. C# biến phạm vi không nhất quán?
- 18. coldfusion CFM Biến phạm vi
- 19. Loại nào có biến chứa phạm vi?
- 20. Điều kiện XSLT/phạm vi biến
- 21. Biến phạm vi nếu có tuyên bố
- 22. Javascript - trao đổi trong phạm vi <option>
- 23. Phạm vi biến trong trang aspx
- 24. Biến phạm vi vấn đề
- 25. Phạm vi của các biến trong KSH
- 26. Tại sao = và <- không tương đương trong phạm vi()?
- 27. phạm vi biến cmake, add_subdirectory
- 28. Giới hạn phạm vi biến
- 29. Biến phạm vi ứng dụng trong Flask?
- 30. Phạm vi biến đổi trong dưa chuột
Re: "Xác định phạm vi khái niệm chỉ trong PHP tồn tại cho các chức năng hoặc các phương pháp", PHP 5.3 và không gian tên loại biến tuyên bố rằng vào tai của nó. –