2011-11-08 21 views

Trả lời

64

Dấu nháy đơn sẽ không phân tích cú pháp biến PHP bên trong chúng. Hoặc sử dụng dấu ngoặc kép hoặc sử dụng dấu chấm để mở rộng tiếng vang.

$variableName = 'Ralph'; 
echo 'Hello '.$variableName.'!'; 

HOẶC

echo "Hello $variableName!"; 

Và trong trường hợp của bạn:

$i = 1; 
echo '<p class="paragraph'.$i.'"></p>'; 
++i; 

HOẶC

$i = 1; 
echo "<p class='paragraph$i'></p>"; 
++i; 
+0

Tôi cho rằng chỉ người đầu tiên làm việc cho ví dụ của tôi vì biến không được tách biệt với từ đó. – Mechaflash

+1

Không, nó không quan trọng, vì điều thứ hai không xuất ra bất kỳ khoảng trống nào giữa "đoạn văn" và đầu ra của biến. – Simon

+0

Chiến thắng thứ 3 là những gì phù hợp với tôi. Nhưng tôi hiểu sự khác biệt giữa dấu nháy kép và đơn. Chỉ cần tôi đang chỉnh sửa một chương trình nguồn mở để thực hiện một số tùy chỉnh nhỏ và tôi không muốn thay đổi định dạng xung quanh quá nhiều. – Mechaflash

2

Sử dụng dấu ngoặc kép:

$i = 1; 
echo " 
<p class=\"paragraph$i\"> 
</p> 
"; 
++i; 
10

Nội suy biến thiên không xảy ra trong các dấu nháy đơn. Bạn cần phải sử dụng dấu ngoặc kép như:

$i = 1 
echo "<p class=\"paragraph$i\"></p>"; 
++i; 
5
echo '<p class="paragraph'.$i.'"></p>' 

nên làm các trick.

6
echo '<p class="paragrah"' . $i . '">' 
+0

+1 để sử dụng tiêu chuẩn mã hóa Zend của không gian giữa các bộ ghép thời gian – user

4
echo '<p class="paragraph'.$i.'"></p>'; 
0

Bạn có thể thử này

$i = 1 
echo '<p class="paragraph'.$i.'"></p>'; 
++i; 
+0

@Mechaflash câu hỏi hay đã được hỏi tại đây –

14

Luôn luôn sử dụng dấu ngoặc kép khi sử dụng một biến bên trong một chuỗi và xuyệc ngược bất kỳ dấu ngoặc kép khác, ngoại trừ thời gian bắt đầu và kết thúc những người thân. Bạn cũng có thể sử dụng các dấu ngoặc vuông như dưới đây để dễ dàng tìm thấy các biến của bạn bên trong các chuỗi và làm cho chúng trông sạch hơn.

$var = 'my variable'; 
echo "I love ${var}"; 

hoặc

$var = 'my variable'; 
echo "I love {$var}"; 

Trên sẽ trở lại như sau: Tôi yêu biến

-2

đôi khi "varaiable của tôi: $ {value}" của tôi;

3

Dưới đây là 3 cách tốt nhất để thực hiện việc này.

Một phương pháp:

$x = '+3'; 
echo "1+2$x"; 

đúp ngoặc kép (") cho phép bạn chỉ cần vượt qua biến trực tiếp bên trong nó

Phương pháp thứ hai:.

$x = '+3'; 
echo '1+2'.$x; 

Khi bạn không muốn sử dụng dấu ngoặc kép cho bất kỳ lý do gì đi kèm với điều này. ((.) đơn giản có nghĩa là "Thêm" về cơ bản. Vì vậy, nếu bạn đã muốn thêm một cái gì đó như thế nào, 1 + 2 + 3 + 4 + 5 và có biến của bạn ở giữa tất cả các bạn cần làm là:

$x = '+3'; 
echo '1+2'.$x.'+4+5'; 

Phương pháp 3: (Thêm một biến trực tiếp bên trong biến gọi là)

$x = '+3'; 
$y = '+4'; 
$z = '+5'; 
echo "1+2${"x".$y.$z}"; 
Output: 1+2+3+4+5 

Ở đây chúng ta đang thêm $y$z-$x sử dụng "."; {} ưu tiên công việc bên trong nó trước khi hiển thị biến số chưa xác định .

cá nhân Đây là một chức năng rất hữu ích để gọi các chức năng như:

//Add the Get request to a variable. 
$x = $_GET['tool']; 

//Edit: If you want this if to contain multiple $xresult's change the if's 
//Conditon in the "()" to isset($get). Simple. Now just add $xresultprogram 
//or whatever. 
if($x == 'app') { 
    $xresultapp = 'User requested tool: App'; 
} 

//Somewhere down far in HTML maybe... 

echo ${"xresult".$x}; 
//Note: doing ${"xresult".$_GET['tool']} directly wont work. 
//I believe this is because since some direct non-echo html was loaded 
//before we got to this php section it cant load cause it has already 
//Started loading client side HTML and JS. 

này sẽ ra $ xresultapp của, tài khoản yêu cầu cụ: App nếu họ đã làm example.com?tool=app. Bạn có thể sửa đổi với một câu lệnh khác để xác định điều gì sẽ xảy ra khi một cái gì đó được yêu cầu khác rồi ứng dụng e.t.c được yêu cầu. Nhớ tất cả mọi thứ là trường hợp nhạy cảm vì vậy nếu họ yêu cầu ứng dụng trong thủ đô nó sẽ không đầu ra $ xresultapp.

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