2010-03-30 33 views

Trả lời

10

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.

+0

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ó. –

1

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.

0

Nếu bạn có

<php 
$a = '111'; 
?> 

<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.

1

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.

1

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 
} 
?> 
+1

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. –

+0

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

+0

So tổng. Nhưng hey PHP đã đi trước JSX: D – Askdesigners

Các vấn đề liên quan