簡體   English   中英

在foreach循環中使用PHP常量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM