小编sou*_*rri的帖子

三元运营商.可以采取单方面行动?

我已经使用了三元运算符一段时间了,并且想知道是否有一种方法可以让没有该else子句的函数调用.例:

if (isset($foo)) {
    callFunction();
} else {

}
Run Code Online (Sandbox Code Playgroud)

现在显然我们可以省略else:

if (isset($foo)) {
    callFunction();
}
Run Code Online (Sandbox Code Playgroud)

现在对于三元组如果条件返回false,你怎么能通过'else子句'?

isset($foo) ? callFunction() : 'do nothing!!';
Run Code Online (Sandbox Code Playgroud)

要么是神秘还是不可能?

php ternary-operator

16
推荐指数
1
解决办法
7593
查看次数

反应组件的渲染数组

快速提问。有谁知道如何渲染组件数组?试图使开发人员更轻松地更改特定组件。(就像仪表板一样)。

组件清单文件

import React from 'react';
export default [
    <ComponentOne/>
    <ComponentTwo/>
];
Run Code Online (Sandbox Code Playgroud)

仪表板组件

import React from 'react';

import components from './../../components';

export default class Dashboard extends React.Component 
{
    render = () => {
        //Want to render the array of components here.
        return (
            <div className="tile is-parent">
                {components}
            </div>
        );
    };
}
Run Code Online (Sandbox Code Playgroud)

问题是我需要向其中添加密钥的一系列组件。然而!我似乎也无法向该组件添加密钥,不确定如何真正解释它,所以这是我尝试过的代码:

{components.map((component, key) => (
    <component key={key}/>
}
Run Code Online (Sandbox Code Playgroud)

如果执行上述操作,我不会收到“您必须应用密钥”错误,但是什么也没有呈现?我猜这是因为“组件”不存在或沿这些思路很怪异。

我也试过了,component.key = key;但是显然它不能让我对这种类型的对象进行操作吗?

我想我的后备方法是返回一个简写函数而不是一个数组,但是由于某种原因我喜欢该数组?对于大三学生来说似乎更简单。

arrays reactjs

12
推荐指数
3
解决办法
2万
查看次数

同时使用:after和:hover

是否可以只显示:after伪使用:hover?例如,使用替代元素.

#parent{}
#child{display:none;}
#parent:hover >#child{display:block;}
Run Code Online (Sandbox Code Playgroud)

至于我用同样的方法:

#parent{}
#parent:after{content:'hi';display:none;}
#parent:hover  #parent:after{display:block;}
Run Code Online (Sandbox Code Playgroud)

有可能吗?还是我自欺欺人?

css css-selectors pseudo-class pseudo-element css-content

7
推荐指数
2
解决办法
186
查看次数

javascript/jQuery匿名函数来填充数组

嗨,我只是想知道是否可以使用像这样的函数在javascript中构建数组.我有一个变量,它使用了一系列元素的边距$(ele).css('margin');.这将返回一个字符串,0px 0px 0px 0px其中我只希望left属性检查它是否已被动画-=左.

我可以做类似的功能但我知道必须有更好的方法.这是我的例子:

var marginsLeft = new array();
$(ele).each(function(i){
    var r = $(i).css('margin').split(" ");
    marginsLeft[i]=r[3];
});
Run Code Online (Sandbox Code Playgroud)

我不完全确定如何简化这一点,但我确信这是可能的:)提前感谢.

javascript jquery

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

将 group_start 与 codeigniter 一起使用。需要 OR 而不是 AND

我正在使用 codeiginter,基本上我需要OR ()而不是AND ()在使用group_start(). 这可能吗?

我需要生产的是

WHERE (u.location LIKE '%?%' OR (u.long BETWEEN ? AND ? AND u.lat BETWEEN ? AND ?)) AND u.active=1
Run Code Online (Sandbox Code Playgroud)

我目前在做什么

$this->db->group_start()
->like('u.location',$selector['text']);
if(isset($geo)){
    $this->db->group_start();
    $this->db->where('u.long >',$geo->long)
    ->where('u.long <',$geo->longmax)
    ->where('u.lat >',$geo->lat)
    ->where('u.lat <',$geo->latmax)
    ->group_end();
}
$this->db->group_end();
Run Code Online (Sandbox Code Playgroud)

这会产生什么

WHERE ( `u`.`location` LIKE '%?%' ESCAPE '!' AND ( `u`.`lat` < ? AND `u`.`lat` > ? AND `u`.`long` < ? AND `u`.`long` > ? ) ) 
Run Code Online (Sandbox Code Playgroud)

谢谢您的帮助!

php codeigniter

2
推荐指数
1
解决办法
9661
查看次数

Laravel 路由组全局范围

我在解决如何将全局范围添加到 laravel 中的路由组时遇到了一些麻烦。我所做的是

Route::group([
    "prefix" => "customer",
    "namespace" => "Customer",
    "as" => "Customer.",
], function() {
    //make sure only public salons are displayed!
    \App\Salon::addGlobalScope("public", function(\Illuminate\Database\Eloquent\Builder $builder) {
        $builder->where("public", 1);
    });

    Route::get("/", "IndexController@index")->name("index");

    Route::get("/salon/{salon}", "SalonController@show")->name("salon.show");

});
Run Code Online (Sandbox Code Playgroud)

这个想法是我希望在整个组中添加公共查询!这包括在沙龙模型和路由绑定上调用 newQuery。这可能吗?假设我很懒惰,而不是定义路由绑定并将范围添加到每次使用中,我宁愿在这里执行此操作,因为我在整个组中都需要此绑定!

提前致谢 :)

php scope routes laravel

2
推荐指数
1
解决办法
2224
查看次数

单例类数据库mysqli phpversion 5.2.17

我有一些问题为mysqli对象构建一个单独的类,供多个类使用.我最初得到的错误Access to undeclared static property: database::$DBH是我不理解的,因为属性不是静态的.我推测它可能是因为phpversion()返回5.2.17并且我发现单例模式只能使用版本> 5.3来完成?(可能是完全错误的).我调查了一下,发现我的服务器提供商允许我选择我可以使用的PHP版本.我目前选择5.3.3,但同样的错误.要么我必须等待服务器"刷新"它的设置.或者我的版本5.3.3确实存在合法错误

class database{
    private$DBH;
    private static$singleton;
    protected function __construct(){
        $this->$DBH=new mysqli(HOST,USER,PASSWORD,DATABASE);
        //also tried self::$DBH;
        //if(mysqli_connect_errno())print_r(mysqli_connect_error());
    }
    public static function instance(){
        if(!(self::$singleton instanceof self))self::$singleton=new self();
        return self::$singleton;
    }
    public static function get(){
        return self::instance()->$DBH;
    }
    private function __wake(){}
    private function __clone(){}
}
class test{
    public function __construct(){
        $get=database::get()->prepare('SELECT column FROM table');
        $get->execute();
        $get->bind_result($col);
        while($get->fetch()){
            print($col."\n");
        }
        //$get->close(); not required.
    }
}
$t=new test();
Run Code Online (Sandbox Code Playgroud)

有没有其他想要我想要实现的选择?(单个mysqli对象用于多个类,也是标准对象的'securer'方法.)

我应该用mysqli扩展我的数据库类吗?

我应该使用PDO吗?

或者再次更好!获得更好的服务器提供商,他们的服务是最新的.

php oop singleton mysqli class

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

Typescript“树”对象定义

我不太确定我正在创建的对象类型的“名称”。我称其为树,因为它看起来类似于没有关系的嵌套树。本质上我想要一个具有嵌套定义的对象,如下所示

{
    test1: OptionsInterface,
    test2: {
        test3: OptionsInterface,
        test4: {
            test5: OptionsInterface,
        },
    },
}
Run Code Online (Sandbox Code Playgroud)

因此,第一个级别可以是OptionsInterface或者{[s: string]: OptionsInterface}有没有办法在对象的每个“级别”上使用它?

我尝试像这样定义上面的内容:

export default class ApiClient {
    constructor(options: {[s: string]: OptionsInterface | {[s: string]: OptionsInterface}}) {}
Run Code Online (Sandbox Code Playgroud)

但这只会是 2 深,对吗?有没有一种方法可以定义我的示例对象,而无需手动添加每个深度?

用例

我希望能够像这样打电话给我的班级

api = new ApiClient(routeSchema);
await api.call('test2.test4.test5', params);
Run Code Online (Sandbox Code Playgroud)

通话中:

async call(config: string, variables: object = {}): Promise<Response> {
  const options = get(this.configuration, config);

  if (options === undefined) {
    throw new ConfigNotDefinedExpection(config);
  }

  return await this.callWithOptions(options, variables);
}
Run Code Online (Sandbox Code Playgroud)

哪里callWithOptions …

definition typescript

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

mysqli - 更新整数

是否有更简单的方法将表中的整数值更新为1而不"获取/返回"该值?

我正在寻找类似的东西 $i ++;

$query = $DBH->prepare("UPDATE table SET col = ?");
$query->bind_param(++);
$query->execute();
Run Code Online (Sandbox Code Playgroud)

显然上面的内容不会起作用,但这是我希望实现的目标.

php mysqli

-1
推荐指数
1
解决办法
159
查看次数