我有一个像这样的连锁电话:
$object->getUser()->getName();
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用字符串来调用对象上的函数:
$functionName = 'getUser';
$object->$functionName() or call_user_func(array($object, functionName))
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能为连锁电话做同样的事情?我试着这样做:
$functionName = 'getUser()->getName';
$object->functionName();
Run Code Online (Sandbox Code Playgroud)
但是我收到了一个错误
方法名称必须是字符串
我想这是因为()并->不能解释,因为他们是一个字符串的一部分?我有什么方法可以做到这一点,而不必做:
$function1 = getUser;
$function2 = getName;
$object->$function1()->$function2();
Run Code Online (Sandbox Code Playgroud)
目的是获取一系列函数并将它们链接起来,以便在给定对象上调用此链,例如:
$functions = array('getCoordinates', 'getLongitude'); // or any other chain call
$functionNames = implode('()->',$functions);
$object->$functionNames()
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个正则表达式,用于验证国际电话号码的2个首字符,如用户输入的那样:
有效:+,0,+ followed by a number,00,0032476382763,+324763
无效:0 followed by a number different than 0,++,everything that is not in the valid list
到目前为止,我想出了:
/[0]|[00]|[+]|[+\d]]/g
Run Code Online (Sandbox Code Playgroud)
但这证实++但不是+2.问题是我无法弄清楚如何根据字符数(1或2)进行验证.
我正在使用那个表达式javascript.这是我工作的正则表达式:http://regexr.com/3br5v
我的正则表达水平不是很好,所以任何帮助都会非常感激.
我有一个数组,如:
$tree = array(
'folder_1' => array(
'folder_1_1',
'folder_1_2' => array(
'folder_1_2_1',
'folder_1_2_2'
),
'folder_1_3'
),
'folder_2' => array(
'folder_2_1' => array(
'folder_2_1_1' => array(
'folder_2_1_1_1',
'folder_2_1_1_2'
)
),
)
);
Run Code Online (Sandbox Code Playgroud)
我正在尝试构建一个路径数组:
$paths = array(
'folder_1',
'folder_1/folder_1_1',
'folder_1/folder_1_2',
'folder_1/folder_1_2/folder_1_2_1',
'folder_1/folder_1_2/folder_1_2_2',
'folder_2',
'folder_2/folder_2_1',
...
);
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到实现这一目标的方法.我遇到的问题是文件夹名称可以是数组键,也可以是数组元素.
这是我到目前为止所做的,但我没有接近解决方案......
$paths = transform_tree_to_paths($trees);
function transform_tree_to_paths($trees, $current_path = '', $paths = array())
{
if (is_array($trees)) {
foreach ($trees as $tree => $children) {
$current_path .= $tree . '/';
return transform_tree_to_paths($children, $current_path, $paths);
}
$paths[] = …Run Code Online (Sandbox Code Playgroud) ImageOverlay我正在尝试制作地图上添加和删除的动画。基本上,TileLayer有这个getContainer()功能可以检索与图层相对应的 html 元素。然后我可以调用 afadeIn()或fadeOut()函数来为其设置动画,如下所示:
$(tileLayer.getContainer()).fadeOut(5000, function(){
map.removeLayer(tileLayer);
});
Run Code Online (Sandbox Code Playgroud)
我想用 my 重现相同的行为ImageOverlay,但没有可以获取图像元素的函数(传单文档)。有什么办法可以做到这一点吗?