[英]Call a method inside an array in PHP
我想在PHP的數組中(類中)調用方法:
const emtpy= "Please correct %s";
...
$myArray= array(
'1'=>'myvalue',
'2'=> printf(self::emtpy,'user')
);
但是,Eclipse對於被調用方法的第一括號返回一個錯誤。
syntax error, unexpected '(', expecting ')
有人有什么想法嗎? 謝謝 !
定義類成員時,不能使用類似的表達式-它們必須是靜態值。 如果需要基於常量,函數等分配默認值,則需要在構造函數中執行此操作。
您可以嘗試使用array_map。
試試這個課程:
class CallbackArrayClass {
public static $empty;
public static function callback($a) {
self::$empty = printf("please enter your name %s", $a);
}
public function initArray() {
$myArray= array(
'1'=>'myvalue',
'2'=> array_map("self::callback", array('user'))
);
}
}
$c = new CallBackArrayClass();
$c->initArray();
http://php.net/manual/en/function.array-map.php
function callback($a) {
return printf("please enter your name %s", $a);
}
$myArray= array(
'1'=>'myvalue',
'2'=> array_map('callback', array('user'))
);
我認為您不能為printf()
的格式字符串使用類似的常量。 嘗試不使用const的情況...將emtpy
(拼寫)const設置為$ variable。
編輯:
這就是我的意思。盡管如此,回調的想法並不是一個壞主意。
$empty = "Please correct %";
$myArray = array(
'1' => 'myvalue',
'2' => printf($empty, 'user')
);
echo $myArray[2];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.