2014-07-26 16 views
5

Trong PHP, mã sau sẽ không tạo ra lỗi cú pháp. Là một nhà phát triển, điều này sẽ tạo ra một lỗi cú pháp trong đầu của tôi. Bất kỳ đầu mối?

<?php 
$ $ $ $ $ $ $what_the_hell_php = 'what is wrong with you PHP?'; 

echo $what_the_hell_php; // no output 
echo $ $ $ $ $ $ $what_the_hell_php; // worth a try but no output too 

// echo $; // well, don't do this. this produces an actual PHP syntax error. 

$dollars = 'a lot of money will make me crazy'; 
echo $dollars; 
echo $$$$$$$$$$$$$$$$$$$$$$$$$$ $lotsofmoney = " - and PHP too!"; 

// echo $$$$$$something $hello = 'hello'; // won't work, PHP likes pure dollars 

// is it for this?? 
echo 

    $$$  $$$$$$ $$$$$$ $$$$ $$$$  $$$ $$$$$$$$ $$$$$$$$ 
    $$ $$ $$ $$ $$ $$ $$ $$  $$ $$ $$  $$ $$ 
$$ $$ $$  $$  $$ $$  $$ $$ $$  $$ $$ 
$$  $$ $$$$$$ $$  $$ $$  $$  $$ $$$$$$$$  $$ 
$$$$$$$$$  $$ $$  $$ $$  $$$$$$$$$ $$ $$  $$ 
$$  $$ $$ $$ $$ $$ $$ $$  $$  $$ $$ $$  $$ 
$$  $$ $$$$$$ $$$$$$ $$$$ $$$$ $$  $$ $$  $$ $$ 

$ascii = "<hr />\nMy ASCII art is not a string or a comment! First time!"; 

?> 

... và đầu ra:

a lot of money will make me crazy - and PHP too!<hr /> 
My ASCII art is not a text or a comment! First time! 

Trả lời

6

PHP có một khái niệm về "variable variables" cho phép bạn tự động đề cập đến một biến bằng tên của nó. Ví dụ:

$a = 'foo'; 
$b = 'a'; 
$c = 'b'; 
$d = 'c'; 

echo $ $ $ $d; // foo 

Và khi bạn sử dụng nó trong bài tập? Hy vọng rằng điều này sẽ giúp để chứng minh một chút:

$a = 'foo'; 
$$a = 'bar'; 

echo $foo; // bar 

Vì vậy, trong mã này:

echo $ $ $ $ $ $ $what_the_hell_php = 'what is wrong with you PHP?' 

Để gán giá trị, động cơ sẽ nhận được giá trị hiện lưu trữ trong $what_the_hell_php, sau đó được các giá trị được lưu trữ trong biến với tên đó, sau đó nhận giá trị được lưu trữ trong biến có tên đó, v.v. Tất nhiên, trong ví dụ của bạn, $what_the_hell_php ban đầu là null, vì vậy nó sẽ không thực sự có thể dereference các biến này. Tuy nhiên, kết quả của biểu thức gán vẫn là một giá trị, giống như tất cả các biểu thức gán:

echo $a = $b = $c = 'foo'; // foo 
+0

Không biết nó hoạt động với khoảng trắng. Giải thích nó! – rationalboss

+0

@rationalboss Tôi đã cố gắng xây dựng thêm một chút. –

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