這個代碼執行後,爲什麼會多一個1出來?
<?=require('./common/aside.php')?>在PHP中,require和include語句用於將其他PHP文件中的內容包含到當前文件中。這些語句可以用於在多個文件中重用代碼,從而提高代碼的複用性和可維護性。
在上面提到的代碼中,<?=require('./common/aside.php')?>語句是將./common/aside.php文件中的內容包含到當前文件中,並且使用了<?=語法輸出該文件的內容。<?=expression?>語法等同於<?php echo expression; ?>語法。
如果在包含的文件中有echo或者其他輸出語句,那麼包含這個文件的語句會返回一個值爲1的結果。這個1的輸出就是因爲這個語句返回了1。
要解決這個問題,可以在./common/aside.php文件中確保沒有任何輸出語句或其他語句產生輸出。或者使用include代替require語句,因爲include語句不會中斷程序執行,而是返回一個警告。這樣,就不會產生1的輸出了。
如何屏蔽掉這個1?
如果你在使用<?=require('./common/aside.php')?>語句時發現在頁面最後出現了一個1,這是因爲require語句會返回一個布爾值來表示文件是否成功包含,而<?=expression?>語法會將該值輸出到頁面上。
要屏蔽掉這個1,可以將<?=require('./common/aside.php')?>改爲<?php require('./common/aside.php'); ?>。這樣就不會輸出任何值到頁面上,也就不會出現1了。
如果你希望使用<?=expression?>語法輸出包含文件的內容,可以將./common/aside.php中的任何輸出語句修改爲賦值語句,然後在最後返回一個變量,然後在<?=require('./common/aside.php')?>中輸出該變量。這樣就可以避免出現1的情況了。例如:
在./common/aside.php中:
<?php
$content = '這是側邊欄的內容';
return $content;
?>在主文件中:
<?=require('./common/aside.php')?>這樣輸出的結果就是這是側邊欄的內容,而不會出現1了。