我遇到了一些奇怪的事情.
我有一个php数组,用数字键索引.但是,似乎无法访问任何元素,因为php会自动将数字字符串视为整数,从而导致非法的偏移通知.
在正常情况下,它无法创建一个带有数字字符串索引的php数组,但它可能会发生类型转换.
重现:
$object = new stdClass();
$object->{'1'} = 'one';
$array = (array) $object;
var_dump($array);
/* produces
array(1) {
  ["1"]=>
  string(3) "one"
}
*/
//none of the following will work
$key = '1';
echo $array[1], $array['1'], $array["1"], $array[(string)1], $array[$key];
Run Code Online (Sandbox Code Playgroud)
这只是一个边缘案例错误吗?我在尝试改进另一个SO问题的答案时才遇到问题
实时代码示例:http://codepad.viper-7.com/dFSlH1
我对prestashop 1.6网站进行了大量修改.
我已经创建了一个本地副本,并且正在跟踪git中的文件系统更改.
但是prestashop中的很多更改都存储在数据库中,特别是在我的情况下:
在开发过程中,实时站点收到了大量新订单,客户,订户等,因此数据库不同步.
我通过在db中转储和导入特定表,或者使用迁移功能中内置的框架解决了其他框架中的类似问题,但我找不到专门针对prestashop的建议.
这是怎么处理的?
考虑到开发站点可能经历了比实时站点更多样化的更改,我想知道将新订单等复制到开发站点然后覆盖整个事件会更容易吗?
我正在尝试向基于 WordPress 的网站添加自定义 URL 结构。
例如:
example.com/machines             //list all machines in a table
example.com/machines?some=params //list filtered machines in a table
example.com/machines/1           //show single machine
Run Code Online (Sandbox Code Playgroud)
数据将来自我已经开发的外部 API,通过 curl。
我无法将数据导入自定义帖子类型,因为它在许多表上进行了规范化,业务逻辑很复杂,而且 api 无论如何都被其他设备使用。
我查看了add_rewrite_rule的文档,但第二个参数让我感到困惑:
$redirect
(string) (required) The URL you would like to actually fetch
Run Code Online (Sandbox Code Playgroud)
好吧,我没有要获取的 url,我想运行一个函数,它将充当一个简单的路由器 - 获取 url 部分,调用外部 api 并返回一个包含正确数据的模板。
调用 API 很简单,但我如何实际将 url 路由到函数,以及如何加载模板(利用现有的 WordPress header.php 和 footer.php)让我感到困惑。
我使用php内置的webserver遇到了一个问题,因为它似乎只允许一个并发连接.
我在测试一些似乎同时完成的并发ajax请求时发现了这一点.
这不是什么大问题,因为我总是可以启动apache(这是我得出的结论),但我已经习惯直接从我的IDE运行php.
有没有办法增加这个,还是php限制?
我的示例代码使用内置服务器阻止但在apache上正常工作:
        $.ajax({
            type: "POST",
            url: slow.php,
            data: "",
            success: function(data){
                clearInterval(checkid);
                console.log('slow call finished');
            }
        });
        checkid = setInterval(function(){
            $.get('somefile.txt', function(data){
                console.log('quick call finished');
            });
        },1000);
        //slow.php
        sleep(10);
        echo 'all done';
Run Code Online (Sandbox Code Playgroud) 有人可以告诉我如何在Encog 3.1中使用多类SVM分类?
我已经使用他们的神经网络取得了一些成功,但无法弄清楚如何设置多类SVM.
文档有这样的说法:
"这是一个由一个或多个支持向量机(SVM)支持的网络.它的设计功能与Encog神经网络非常相似,并且在很大程度上可与Encog神经网络互换.分类用于你希望SVM将输入数据分组到一个或多个类中.支持向量机通常只有一个输出.神经网络可以有多个输出神经元.为了解决这个问题,如果有多个SVM,这个类将创建多个SVM输出指定"
但是我看不出如何指定多个输出,实际上输出属性只返回1:
 /// <value>For a SVM, the output count is always one.</value>
    public int OutputCount
    {
        get { return 1; }
    }
Run Code Online (Sandbox Code Playgroud)
Java或c#中的答案非常感谢
编辑仍然无法解决这个问题.真的很享受使用Encog,但支持论坛只有Jeff Heaton(项目的作者)在他有机会时自己回答,所以即时联系项目代码并添加赏金,希望有人能看到我明显缺少的东西.
该项目:http: //heatonresearch.com/
Google代码上的SupportVectorMachine类:https: //code.google.com/p/encog-cs/source/browse/trunk/encog-core/encog-core-cs/ML/SVM/SupportVectorMachine.cs
我正在尝试练习手动依赖注入(还没有框架)来删除我的代码中的紧耦合.这只是为了练习 - 我没有考虑具体的实现.
到目前为止,简单的构造函数注入工作正常.
但是,当一个类必须在并行循环中使用另一个类时,我无法弄清楚如何解决创建紧耦合问题.例:
public class Processor
{
    private IWorker worker;
    public Processor(IWorker worker)
    {
        this.worker = worker;
    }
    public List<string> DoStuff()
    {
        var list = new List<string>();
        for (int i = 0; i < 10; i++)
        {
            list.Add(worker.GetString());
        }
        return list;
    }
    public List<string> DoStuffInParallel()
    {
        var list = new System.Collections.Concurrent.ConcurrentBag<string>();
        Parallel.For(0, 10, i => 
        { 
            //is there any trivial way to avoid this??
            list.Add(new Worker().GetString());
        });
        return list.ToList();
    }
}
public class Worker : IWorker
{
    public …Run Code Online (Sandbox Code Playgroud) 我在ubuntu 16.04 VM上进行开发工作
当我处理许多项目时,为了让我的生活更轻松,我使用*.dev域将VirtualDocumentRoot和hosts文件从我的主文件夹中用于服务器站点:
在000-default.conf我有:
<VirtualHost *:80>
  VirtualDocumentRoot  /home/steve/websites/%-2/%-2/public_html
  ServerAlias *.dev
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
然后在主机中我有我正在研究的各种网站:
127.0.0.1   somesite.dev
127.0.0.1   another.dev
127.0.0.1   athirdone.dev
127.0.0.1   blog.athirdone.dev
Run Code Online (Sandbox Code Playgroud)
这样,当我添加一个新项目时,我只需要在网站目录中创建正确的文件夹结构并向主机添加一行,例如,如果我想处理一个新项目somecoolproject.dev,我只需添加一个文件夹:
/home/steve/websites/somecoolproject/somecoolproject/public_html
Run Code Online (Sandbox Code Playgroud)
和主机中的一行:
127.0.0.1    somecoolproject.dev
Run Code Online (Sandbox Code Playgroud)
我很高兴去.
无论如何,我现在工作的几乎所有内容都运行在https上,并且许多项目都有代码来强制执行此操作,无论是在源代码还是htaccess等,这使得处理开发副本变得很麻烦.
我想在我的开发机器上创建一个自签名证书,理想情况是我不需要为每个项目生成一个新的证书,所以某种通配符*.dev会很棒.
但即使我确实需要为每个项目创建一个新项目,我仍然无法解决如何使用我的设置安装它 - 我找到的所有内容都假设一个固定文档和硬编码的服务器名称.
我在路径文件夹中的web.php中有他的代码:
Route::post('/benice', function(\Illuminate\Http\Request $request)
{
    if(isset($request['action']) && $request['name']){
        if(strlen($request['name']) >0){
            return view('actions.nice', ['action' => $request['action'], 'name'=>$request['name']]);
        }
        return redirect()->back();
    }
    return redirect()->back();
});
Run Code Online (Sandbox Code Playgroud)
这是在view文件夹里面的home.blade.php中:
 <form action="{{ route('benice') }}" method="post">
        <label for="select-action">Iwant to ...</label>
        <select id="select-action" name="action">
            <option value="greet">greet</option>
            <option value="hug">hug</option>
            <option value="kiss">kiss</option>
        </select>
        <input type="text" name="name"/>
        <button type="submit" class="btn btn-primary btn-block">Do an action</button>
        <input type="hidden" value="{{ Session::token() }}" name="_token">
    </form>
Run Code Online (Sandbox Code Playgroud)
错误是:
Route [benice] not defined. (View: C:\wamp64\www\testLaravel\resources\views\home.blade.php)
Run Code Online (Sandbox Code Playgroud)
任何帮助我将非常感谢我目前刚开始laravel并仍在学习谢谢你