小编Qir*_*rel的帖子

PhpStorm 将局部变量重构为类字段

就像在主题中一样,我想将局部变量重构为类字段。

我正在考虑两种方法:

A. 快速而简单:
我想将变量名称从 重构$var$this->var

B、扩展版:

从:

class x {
    function y() {
        $var = new targetClass;
    }
}
Run Code Online (Sandbox Code Playgroud)

到:

class x {
    /** @var targetClass $var */ // version C, optional
    (public|protected|private) $var;
    function y() {
        $this->var = new targetClass;
    }
}
Run Code Online (Sandbox Code Playgroud)

无法做到这一点,当我尝试重构时$var,只需将其重构为$this->var,我最终会收到一条消息:

插入的标识符无效

首先定义$this->var也没有帮助。

我发现的唯一解决方法是输入$this->var,放松对重构变量的关注,输入任何内容并将其删除。然后PhpStorm被欺骗并且变量被改变。它是简单的脏覆盖方法A。

php ide refactoring phpstorm

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

在PHP中循环遍历具有2个或更多属性的数组

我正在尝试创建一个具有两个属性的数组并遍历它。但是我不知道该怎么做。

在此示例中,具有一个属性:

$foodArray = ["apple", "banana"];

foreach ($foodArray as $food)  {
    echo $food ."<br />";
}
Run Code Online (Sandbox Code Playgroud)

现在,我想添加数组-绿色到苹果,黄色到香蕉,并以相同的方式循环。如何以最佳方式做到这一点?

php arrays

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

PHP 多字节安全 preg_replace 与。str_replace

再会!

我在使用preg_replace和 utf-8 字符时遇到了一些麻烦。以下代码片段:

$v = "line1\nline2\r\n?? ?????? ?? ?????????????";
print $v;
print preg_replace("#\R#", "", $v);
print preg_replace("\n", "", $v);
Run Code Online (Sandbox Code Playgroud)

返回以下输出:

line1
line2
?? ?????? ?? ?????????????

line1line2?? ?????? ?? ?????????????

line1line2
?? ?????? ?? ????????????? ???
Run Code Online (Sandbox Code Playgroud)

出于某种原因?\R使用时不可读,但\n使用时不受影响。由于\R特定于 PHP,我想这会产生问题。有没有人知道我如何在 中使用\R(不被 接受str_replacepreg_replace?我担心这个问题可能会发生在许多其他情况下,不仅仅是资本。

php regex escaping

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

身体高度0

我总是得到身高:身体为0,为什么会这样?

要么我使用高度,最小高度等.

在此输入图像描述

html css height sass

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

为什么我不能循环 $q-&gt;fetch() 两次?

假设我需要使用从 PDO 准备好的语句中得到的结果循环两次。

第一个循环工作正常,下一个循环不起作用

的值为var_dump(q->fetch())空数组。有任何想法吗?

<?php
$q = $dbconnection->prepare("SELECT * from users WHERE role=?");
$q->execute(array('$id')); //Boolean true or false
    

// first loop                           
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
    echo "<br/>" .  $row['user_id'] . "--". $row['fname']. "</br>";
}

// second loop  this loop will NOT echo any thing ?!
while ($row = $q->fetch(PDO::FETCH_ASSOC)) {
    echo "<br/>" .  $row['user_id'] . "--". $row['fname']. "</br>";
}
Run Code Online (Sandbox Code Playgroud)

php mysql pdo

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

从日期数组中查找上一个和下一个最近的日期

2017-02-10 00:00:00
Run Code Online (Sandbox Code Playgroud)

我有一个日期数组

$date_array=array
(
    [0] => 2015-09-01 12:00:00
    [1] => 2015-12-01 12:00:00
    [2] => 2016-03-01 12:00:00
    [3] => 2016-06-01 12:00:00
    [4] => 2016-09-01 12:00:00
    [5] => 2016-12-01 12:00:00
    [6] => 2017-03-01 12:00:00
    [7] => 2017-06-01 12:00:00
    [8] => 2017-09-01 12:00:00
    [9] => 2017-12-01 12:00:00
    [10] => 2018-03-01 12:00:00
    [11] => 2018-06-01 12:00:00
    [12] => 2018-09-01 12:00:00
    [13] => 2018-12-01 12:00:00
    [14] => 2019-03-01 12:00:00
    [15] => 2019-06-01 12:00:00
    [16] => 2019-09-01 12:00:00
    [17] => 2019-12-01 12:00:00
    [18] => 2020-03-01 …
Run Code Online (Sandbox Code Playgroud)

php date

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

回声字母选项,而无需将每个字母都写为数组元素?

<select>
    <option>A</option>
    <option>B</option>
    <option>C</option>
    //...  and so on - till Z
</select>
Run Code Online (Sandbox Code Playgroud)

有没有更短的方法,例如:

$arr = alphabet;
foreach($arr as $el){
    echo "<option>" . $el . "</option>";
}
Run Code Online (Sandbox Code Playgroud)

所以,我需要避免这样写:

$arr = array('A','B','C','D'... );
Run Code Online (Sandbox Code Playgroud)

php arrays

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

处理重复条目的错误 - PHP/MySQL

处理 PHP/MySQL 重复条目错误的正确方法是什么?

即使代码 1062 是重复条目的正确代码,下面的代码也不起作用。我应该在这里使用 DBO 吗?不幸的是我还不熟悉。

<?php 
try {
    mysql_query('INSERT INTO TP2_ORGANISME VALUES (A0A0, Equiterre, 1, 
                        /photos/equiterre_logo.png, Steve Guilbault, steve@equiterre.org');
} catch {
    if (mysql_errno() == 1062) 
      echo 'Duplicate key entry';
} 
?>
Run Code Online (Sandbox Code Playgroud)

我只是在寻找一个简单的 try catch 或任何可以让我向输入重复项的用户打印一条消息,说明他必须为主键输入另一个值。

谢谢

php mysql error-handling try-catch

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

Laravel eloquent 使用关系列更新列

怎样才能实现这个查询?

Sale::with(['catalog'])
    ->whereIn('id', $ids)
    ->update(['price' => DB::raw('catalog.price')]);
Run Code Online (Sandbox Code Playgroud)

这不起作用,它显示未定义的表......我试图输入表的名称,但它是相同的。

在互联网上,我总能找到简单的查询:

Sale::with(['catalog'])
    ->whereIn('id', $ids)
    ->update(['price' => 5]);
Run Code Online (Sandbox Code Playgroud)

好的!当我想用相同的值更新所有行时很容易,另外当你想用同一个表的列更新时也很容易,比如:

Sale::with(['catalog'])
    ->whereIn('id', $ids)
    ->update(['price' => DB::raw('price_alternative')]);
Run Code Online (Sandbox Code Playgroud)

但是如何使用具有关系的另一个表的列呢?我还没有找到解决方案。

我知道这可以使用整个原始查询来解决,但我想知道是否可以通过雄辩的方式来实现

php laravel eloquent eloquent-relationship

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

PHP:如何在 Switch 语句中对多个案例使用相同的逻辑

我有一个函数可以根据输入的值返回响应。代码是这样的

$a = 5;
switch ($a) {
    case 1: $b = 1;
    break;
    case 2 || 3 || 4: $b = 2;
    break;
    case 5: $b = 3;
    break;
}
return $b;
Run Code Online (Sandbox Code Playgroud)

这将返回值2而不是3在代码中可以清楚地看到的值。这是怎么发生的?

php switch-statement

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