小编ski*_*ato的帖子

如何通过在PHP中使用包含该链的字符串来链接调用函数

我有一个像这样的连锁电话:

$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)

php call method-chaining

6
推荐指数
1
解决办法
960
查看次数

正则表达式检查国际电话号码的开头

我正在尝试创建一个正则表达式,用于验证国际电话号码的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

我的正则表达水平不是很好,所以任何帮助都会非常感激.

javascript regex validation phone-number

5
推荐指数
1
解决办法
83
查看次数

在PHP中构建来自多维数组的路径

我有一个数组,如:

$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)

php multidimensional-array

4
推荐指数
1
解决办法
184
查看次数

在 Leaflet API 中添加或删除 ImageOverlay 时的动画

ImageOverlay我正在尝试制作地图上添加和删除的动画。基本上,TileLayer有这个getContainer()功能可以检索与图层相对应的 html 元素。然后我可以调用 afadeIn()fadeOut()函数来为其设置动画,如下所示:

$(tileLayer.getContainer()).fadeOut(5000, function(){
    map.removeLayer(tileLayer);
});
Run Code Online (Sandbox Code Playgroud)

我想用 my 重现相同的行为ImageOverlay,但没有可以获取图像元素的函数(传单文档)。有什么办法可以做到这一点吗?

javascript jquery leaflet

0
推荐指数
1
解决办法
2227
查看次数