[英]Using of PHP constants in foreach loop
我需要在foreach循環中使用PHP競爭者:
define('WEBS', 'http://google.com, http://yahoo.com');
foreach (WEBS as $a) {
//do something
}
但是我設法通過以下代碼做到了這一點,盡管它可以正常工作,但aptana編輯器顯示語法錯誤。 請指導我如何正確進行操作。
foreach (get_defined_constants(true)['user']['WEBS'] as $w) {
//do something
}
您必須先explode
值
foreach (explode(', ', WEBS) as $url) { ...
explode()
會將字符串分解為數組,以便您可以迭代它
另外,您甚至可以使用preg_split
。
foreach(preg_split('/,\s*/', WEBS) as $url) { ...
preg_split()
允許您基於正則表達式拆分字符串。 它返回一個數組。 例如,使用此正則表達式,逗號后的空格是可選的。
# a string like this
foo.com, hello.com,world.com, test.com
# would still split properly to
[
'foo.com',
'hello.com',
'world.com',
'test.com'
]
正則表達式方法並不總是必需的。 但我想我會告訴您,在必要時可以使用更多控件。
Aptana向您顯示錯誤,因為您不能在PHP 5.4之前的func()
之后使用[]
。 為了解決這個問題,您可以執行以下操作:
$constants = get_defined_constants(true);
$constants['user']['WEBS'];
但是在這種情況下, WEBS
應該就可以了。 您遇到的唯一問題是,您需要首先將字符串轉換為數組。
看起來像是濫用常數。
似乎您需要一個數組類型的常規變量。
$webs = array('http://google.com', 'http://yahoo.com');
foreach ($webs as $a) {
//do something
}
如果您仍然認為常量是您所需要的-最好再問一個問題,解釋原因,然后告知您做錯了什么
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.