我想在PHP定義是這樣的:如何在php中設置站點範圍的變量?
$EL = "\n<br />\n";
,然後使用該變量作爲「底線」標記所有在我的網站,像這樣:
echo "Blah blah blah{$EL}";
我如何定義$ EL一次(僅在1個文件中),將其包含在我網站上的每個頁面上,並且不是必須使用每個頁面函數中的(奇怪向後)global $EL;
語句來引用它?
我想在PHP定義是這樣的:如何在php中設置站點範圍的變量?
$EL = "\n<br />\n";
,然後使用該變量作爲「底線」標記所有在我的網站,像這樣:
echo "Blah blah blah{$EL}";
我如何定義$ EL一次(僅在1個文件中),將其包含在我網站上的每個頁面上,並且不是必須使用每個頁面函數中的(奇怪向後)global $EL;
語句來引用它?
大多數PHP網站都應該有一個文件(我稱之爲頭文件),該文件包含在網站的每個頁面上。如果你把代碼,第一行頭文件,然後包括像這樣在每一頁上:
include 'header.php';
你將不必使用全局關鍵字或任何東西,你寫的代碼,第二行應該工作。
編輯:哦,對不起,這不會在功能內工作...現在我看到你的問題。
編輯#2:好吧,採取我的原始意見與標題,但使用define()而不是變量。那些包含在函數內部的工作。
IIRC一個常見的解決方案是一個純文件,包含您的聲明,包含在每個源文件中,如'constants.inc.php'。在那裏你可以定義一堆應用程序範圍的變量,然後將其導入每個文件中。
但是,您必須提供中的包含指令,每個您使用的單個源文件。我甚至看到一些使用這種技術的項目爲幾種語言提供本地化。我更喜歡gettext方式,但也許這個變體對於普通用戶來說更容易。
編輯對於您的問題,我的電子書籍使用$ GLOBALS [],看到的爲Example #2細節。
如果這仍然不適用,我會嘗試到Digg下來的PHP5的對象,並創建一個提供所需的靜態常量(http://www.developer.com/lang/php/article.php/3345121)
靜態辛格爾頓會議將是你最好的選擇,如果數據是用戶具體,否則只需使用conifg文件。 的config.php:
<?php
$EL = "\n<br />\n";
?>
然後在每個頁面上添加
require 'config.php'
的,你將能夠訪問該網頁$ EL。
聽起來像一個常數的工作。請參閱功能define()。
@svec是的,這將是,你只需要包括文件內的功能也。這是我的大部分軟件的工作原理。
function myFunc()
{
require 'config.php';
//Variables from config are available now.
}
您使用的是PHP5嗎?如果您定義__autoload()函數並使用具有某些常量的類,則可以在需要它們的地方調用它們。關於這一點的唯一惱人的事情是,你必須輸入一些東西長一點,像
MyClass::MY_CONST
的好處是,如果你決定改變你處理新線的方式,你只需要改變它在一個地方。
當然,一個可能的負面影響是你正在調用包含一個額外的函數(__autoload()),運行該函數(當你引用類時),然後加載另一個文件(你的類文件)。這可能比它的價值更高。
如果我可能會提供一個建議,它將避免這種需要回顯標籤的回顯(如<br />
)。如果你可以設置一些更模板化的東西,你可以處理nl而不必明確地輸入它們。因此,而不是
echo "Blah Blah Blah\n<br />\n";
嘗試:
<?php
if($condition) {
?>
<p>Blah blah blah
<br />
</p>
<?php
}
?>
它只是我看來,像函數中調用補課或包括變量以及出很多並不需要做的工作,並且如果可能的話,最好避免這種情況。
另一種選擇是使用具有公共靜態屬性的對象。我曾經使用$ GLOBALS,但大多數編輯器不會自動完成$ GLOBALS。此外,未實例化的類可以在任何地方使用(因爲您可以在任何地方安裝,而無需告訴PHP您將使用該類)。例如:
<?php
class SITE {
public static $el;
}
SITE::$el = "\n<br />\n";
function Test() {
echo SITE::$el;
}
Test();
?>
這將輸出<br />
這也更容易處理比costants,你可以把任何類型的值的屬性(數組,字符串,整數等)內,而常量不能包含陣列。
這是我的PhpEd forums用戶推薦給我的。
svec,使用PHP框架。任何 - 這裏有很多。 這是正確的做法。使用框架,您可以爲您的應用程序指定單個條目 ,因此定義站點範圍內的變量非常容易,並且自然也是 。您也不需要關心包含頭文件,也不需要檢查用戶是否在每一頁上登錄 - 體面的框架將爲您做 。
參見:
投入一些時間學習他們中的一個,它會很快償還。
不要這個 define ('el','\n\<\br/>\n');
保存爲el.php
那麼你可以包括你想使用的任何文件,即
回聲「something'.el; //注意我只是在行結束或前
希望這有助於
注意請刪除添加的報「\」後< BR,因爲我不得不把它或它不會顯示在BR標籤答案...