如果我可以选择使用全局变量或传递变量,哪个选项在速度和内存使用方面更好?
// global variable
function func(){
  global $var;
  echo $var;
}
$var='string';
func();
// passing variable
function func($var){
  echo $var;
}
$var='string';
func($var);
Run Code Online (Sandbox Code Playgroud) 我正在使用Gulp来运行Webpack,因为一些与Gulp微不足道的事情对Webpack来说很麻烦,比如多输出.但是,babel-loader似乎没有做任何事情.当我的脚本中有JSX时,我得到一个解析错误.当我使用ES6/7时,什么都没有改变.
这是Gulp的任务:
gulp.task('js', function() {
    return gulp.src('js/*.js')
        .pipe(webpack({
            loaders: [{
                test: /.jsx?$/,
                loader: 'babel-loader',
                exclude: /node_modules/,
                query: {
                  presets: ['es2015', 'stage-0', 'react']
                }
            }],
            output: {
                filename: '[name].js'
            }
        }))
        .pipe(gulp.dest('public/js'));
});
Run Code Online (Sandbox Code Playgroud)
有什么我做错了吗?
我发现了很多关于此错误的问题,但没有一个是专门关于使用docker compose up. 我运行了docker compose up多次,一切都按预期工作,但偶尔会抛出:
Error response from daemon: Conflict.
The container name "/e752d663bd1a_foo" is already in use by container "e672c49f717291b19dbad4a25a372f96b6af5c7cbe70d50d5f169adf09dcb495".
You have to remove (or rename) that container to be able to reuse that name.
Run Code Online (Sandbox Code Playgroud)
我没有更改 Docker Compose 配置或启动任何新容器等。Docker 应该能够识别该容器是之前由 Docker Compose 启动的,因此它可以重用该容器。
这是我的配置的相关部分:
  foo:
    image: server
    depends_on:
      - broker
      - schema-registry
      - connect
      - redis
    restart: always
    user: root
    environment:
      - SERVER=production
      - NODE_ENV=production
    command:
      - node
      - '--experimental-specifier-resolution=node'
      - '--no-warnings'
      - build/production/foo.js …Run Code Online (Sandbox Code Playgroud) 在WordPress中,_postmeta表有一个"meta_value"列,其中包含"longtext"数据类型.但是,我在列中存储整数数据,我希望按整数的值对列进行ORDER BY.
例如,如果我使用"ORDER BY meta_value",结果会是这样的:
999
9456
5
123456
111
Run Code Online (Sandbox Code Playgroud) 我想使用Javascript使HTML元素可点击.这就是我所拥有的:
<div class="link">
<a href="http://example.com">
</div>
<script>
$('.link').click(function(){
  if(link=$(this).find('a').attr('href'))
    window.location.href=link;
});
</script>
Run Code Online (Sandbox Code Playgroud)
这有效,但我想知道是否有更好的方法来做到这一点.谢谢!
运行以下函数后出现此错误:
function send_buffer(){
  ob_end_flush(); 
  ob_flush(); 
  flush(); 
  ob_start();
}
Run Code Online (Sandbox Code Playgroud)
我网站的主体需要几秒钟加载,所以我想先发送标题.但是我收到以下错误:Notice: ob_flush() [ref.outcontrol]: failed to flush buffer zlib output compression
我今天刚开始尝试使用PhoneGap.我之前听说过,我一直认为它将HTML和Javascript翻译成本机代码.尝试之后,我认为该设备直接执行HTML/Javascript/CSS?
我很困惑,就像PhoneGap那样.我的设备是执行原始HTML/Javascript/CSS还是执行翻译的本机代码?
顺便说一句,我正在开发Android.
我必须第一次处理编码问题,我对 PHP、Apache 和浏览器如何处理编码感到困惑。PHP 和 Apache 默认使用 ISO-8859-1,但大多数网站都是 UTF-8。ISO-8859-1 在什么时候转换为 UTF-8?另外,既然PHP使用ISO-8859-1,为什么它可以读取UTF-8网页呢?
向用户公开自动递增的 ID 存在商业智能风险。我通常看到人们用来解决这个问题的方法是:
相反,我创建了一个表:
CREATE TABLE `foo` (
  `id` int unsigned NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
Run Code Online (Sandbox Code Playgroud)
然后,每次插入一行时,我都会像这样手动插入 ID:
insert into `foo` (id) values (
    last_insert_id((0xe8e5 * last_insert_id()) % power(2, 32))
);
Run Code Online (Sandbox Code Playgroud)
该公式是一个线性同余生成器。我的理解是它会生成一个介于 1 和 2^32 之间的伪随机整数,除非所有 2^32-1 整数都用尽,否则不会发生冲突。参数0xe8e5来自https://arxiv.org/pdf/2001.05304.pdf
令人惊讶的是,这甚至适用于批量插入。另外,我尝试插入 100,000 行,但没有发生冲突。
我以前从未见过其他人这样做过,这有潜在的问题吗?
我知道标题是一个糟糕的标题,除了一个例子,我不知道有什么方法可以解释这个:
$('form').submit(function(){
  $(this).find('input').each(function(){
    if($(this).hasClass('error'))
      return false;
  });
});
Run Code Online (Sandbox Code Playgroud)
但是,"return false"返回带有false的".each()".如何将"传递"到".submit()"?
如果有人在浏览器中打开了我的.js或.css文件,是否可以显示不同的内容?我将Apache配置为在.js和.css文件中执行PHP代码.如何检测文件是由网页请求还是由用户直接查看?
编辑:我知道没有办法100%隐藏我的文件.我正在寻找阻止人们复制我的代码的最佳方法.
假设我有以下代码。我正在使用 ExpressJS,但我认为服务器部分与普通 Node.js 没有太大不同。
var express=require('express');
var settings=JSON.parse(fs.readFileSync('settings.json','utf8')); // does this run only once (when the server starts)?
app.get('*',function(req,res){
  res.write(fs.readFileSync('index.html')); // does this block other requests?
  setTimeout(function(){
     someSlowSyncTask(); // does this block other requests?
  },1000);
  res.end();
});
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,第一个是readFileSync在服务器启动时运行一次,还是在服务器每次收到请求时运行?
对于第二个readFileSync,它是否会阻止 Node 处理其他请求?换句话说,所有其他请求是否都必须等到readFileSync完成才能 Node 处理它们?
编辑:我添加了setTimeout和someSlowSyncTask。他们会阻止其他请求吗?
我收到了C++的演讲幻灯片,仅提及这些幻灯片而不解释它们的含义以及它们的区别:
int (*arr)[]={...};
int *(arr[])={...};
int (&arr)[]={...};
int &(arr[])={...}; // not allowed?
Run Code Online (Sandbox Code Playgroud)
这些意味着什么?我尝试使用其中一些程序运行程序,但我收到错误,因为我不知道在初始化列表中放入什么.