鍍金池/ 問答/ PHP問答
大濕胸 回答

$item[$valueParam]是int,$val是string,而你使用2個等於符號( == )會忽略類型檢查,同時進(jìn)行類型轉(zhuǎn)換,string會轉(zhuǎn)換成數(shù)值'0' ,所以就返回true。

使用 === 或 !== 則不會進(jìn)行類型轉(zhuǎn)換。

參考:
http://php.net/manual/en/lang...

傻叼 回答

if (!empty($var)) 的情況:

clipboard.png

以下的東西被認(rèn)為是空的:

  • "" (空字符串)

  • 0 (作為整數(shù)的0)

  • 0.0 (作為浮點(diǎn)數(shù)的0)

  • "0" (作為字符串的0)

  • NULL

  • FALSE

  • array() (一個空數(shù)組)

  • $var; (一個聲明了,但是沒有值的變量)

總結(jié):

  1. 有版本區(qū)分;

  2. 不會產(chǎn)生警告;

  3. 判空條件;

  4. 等價于 if (!isset($var) || $var == false);

參考:empty

if ($var) 的情況:

此種情況 $var 可能會發(fā)生隱式轉(zhuǎn)換,即從其他類型轉(zhuǎn)為 boolean。
轉(zhuǎn)換情況如下:
clipboard.png

當(dāng)然,如果 $var 未定義,從語法角度來說,會有 Notice

參考:Boolean 布爾類型

淺時光 回答
用一個線程循環(huán)處理",我就不明白該如何下手了,啥時候開啟這個"線程"
  1. 這個在秒殺開啟前開始執(zhí)行就行,執(zhí)行過程貫穿整個秒殺過程,可以是幾個進(jìn)程也可以是一個進(jìn)程一直跑,這是出隊的過程。入隊的話就是PHP慣有模式,每次一個請求進(jìn)來自動啟動進(jìn)程,往隊列扔數(shù)據(jù)。
  2. 然后我們要明白這個隊列的意義是什么,redis的意義是什么。redis是用來扛并發(fā)用的,通過一個計數(shù)器,先查詢還有庫存就執(zhí)行入隊,庫存扣完了就直接return。redis扛了一層后進(jìn)隊列數(shù)據(jù)已經(jīng)量級小很多了,隊列的作用本質(zhì)是幫DB扛并發(fā)用的,使得DB事務(wù)執(zhí)行全部串行化,避免鎖的爭搶降低DB性能。
初念 回答

你的問題描述不清楚
這里有個鏈接你看看能解決你的問題嗎 http://blog.csdn.net/aerchi/a...

局外人 回答

1、如果你是在windows上操作,安裝xampp,把代碼部署進(jìn)去就可以了。

2、linux上則要安裝lnmp相關(guān)環(huán)境才可以。

執(zhí)念 回答

圖片描述

你這是重新定義基類 新的基類應(yīng)該先繼承 Model

挽青絲 回答

$sub = DB::table('b')->select(['user_id'])->selectRaw('max(user_id)')->grouBy('user_id');
$_list = DB::table('a')->leftJoin(DB::raw('({$sub->toSql()}) as v1),'a.user_id','=','v1.user_id)->get()

不行就運(yùn)行原生的吧
DB::select('SELECT * FROM a LEFT JOIN (SELECT user_id,count(user_id) from b GROUP BY user_id) as v1 ON a.user_id= v1.user_id');

貓小柒 回答

修改 var-Widget-Contents-Post-Date.php文件中, 函數(shù)execute(), Line 85.
如我修改后的代碼如下:

   while ($post = $this->db->fetchRow($resource)) {
            $timeStamp = $post['created'] + $offset;
            $date = date($this->parameter->format, $timeStamp);

            if (isset($result[$date])) {
                $result[$date]['count'] ++;
            } else {
                $result[$date]['year'] = date('Y', $timeStamp);
                $result[$date]['month'] = date('m', $timeStamp);
                $result[$date]['day'] = date('d', $timeStamp);
                $result[$date]['date'] = $date;
                $result[$date]['count'] = 1;
            }
        }

頁面效果即是 2017-10

傲嬌范 回答

解決:先查詢并設(shè)置用戶組 然后就可得出相應(yīng)客戶組的正確價格

...
# @ Customer GroupId
$Int_Customer_GroupId = $customer -> getGroupId();
# @ Set Group
$product -> setCustomerGroupId( $Int_Customer_GroupId );
# @ Final Price
$finalPrice = $product -> getFinalPrice();
...
帥到炸 回答

找到問題原因了,是國內(nèi)鏡像沒有同步的原因?。。?!

clipboard.png

clipboard.png

composer.json里面的國內(nèi)的那個倉庫給取消,然后再安裝就可以拉取最新的的包了。
比如我是全局安裝,則找到composer配置文件,取消國內(nèi)倉庫即可。

vagrant@homestead:~/.composer$ ll
total 3744
drwxrwxr-x  4 vagrant vagrant    4096 Aug 21 06:46 ./
drwxr-xr-x 14 vagrant vagrant    4096 Aug 10 02:42 ../
-rw-r--r--  1 vagrant vagrant 1849094 Aug  6 13:37 2018-05-04_11-44-59-1.6.5-old.phar
-rw-r--r--  1 vagrant vagrant 1874999 Aug  7 08:23 2018-08-03_15-39-07-1.7.0-old.phar
-rw-------  1 vagrant vagrant     124 Jun  3 20:05 auth.json
drwxrwxr-x  5 vagrant vagrant    4096 Aug  6 14:03 cache/
-rw-rw-r--  1 vagrant vagrant     211 Jun  3 19:56 composer.json
-rw-rw-r--  1 vagrant vagrant   63452 Jun  3 19:56 composer.lock
-rw-------  1 vagrant vagrant      21 Aug 21 06:46 config.json
-rw-rw-r--  1 vagrant vagrant      13 Jun  3 19:55 .htaccess
-rw-r--r--  1 vagrant vagrant     799 Aug  6 13:37 keys.dev.pub
-rw-r--r--  1 vagrant vagrant     799 Aug  6 13:37 keys.tags.pub
drwxrwxr-x 18 vagrant vagrant    4096 Jun  3 19:56 vendor/

config.json中這段代碼刪除即可:

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}
不二心 回答

other 里存放的數(shù)據(jù)應(yīng)該只是單純地用于記錄,絕對不會被用于 搜索、 排序、 統(tǒng)計聯(lián)表的字段。

birthday、place這樣的字段我一般還是會分別使用一個字段進(jìn)行存儲的,這兩個字段很容易被用于類似不同年齡段的用戶占比,不同地區(qū)的用戶占比 的統(tǒng)計功能,存在other中的話會很不方便。

當(dāng)然,具體怎樣存儲還是需要根據(jù)實際需求來定。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>html5實現(xiàn)上傳</title>
    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div id = "result"></div>
<input id="pic" type="file" name = 'pic' accept = "image/*" onchange = "selectFile()"/>
<script type="text/javascript">
    var form = new FormData();//通過HTML表單創(chuàng)建FormData對象
    var url = '127.0.0.1:8080/'
    function selectFile(){
        var files = document.getElementById('pic').files;
        if(files.length == 0){
            return;
        }
        var file = files[0];
        //把上傳的圖片顯示出來
        var reader = new FileReader();
        // 將文件以Data URL形式進(jìn)行讀入頁面
        reader.readAsBinaryString(file);
        reader.onload = function(f){
            var result = $("#result");
            var src = "data:" + file.type + ";base64," + window.btoa(this.result);
            result.append($('<img src ="'+src+'"/>'));
        }
        form.append('file',file);
    }
</script>
</body>
</html>

代碼源自這里,稍作修改,希望可以幫到你

假若需要考慮兼容性,推薦使用插件,如WebUploader,一般的組件庫都會包含上傳插件

命于你 回答

莫慌,你先確認(rèn)網(wǎng)絡(luò)沒有問題,然后確認(rèn)git clone的地址也沒有問題。如果都沒有問題,就說明是這個軟件的問題,而這個軟件只是對git的一種包裝,找到你安裝的git.exe的路徑,然后命令行運(yùn)行g(shù)it clone xxx/xx/xx 試一下

青裙 回答

?<=是斷言,斷言常和零寬這個詞一起出現(xiàn),零寬斷言是在文本的某個位置判斷這個位置前面或者后面的字符滿足或者不滿足一些條件,具體是向前還是向后,滿足還是不滿足就和具體的斷言類型相關(guān)了。需要特別注意的是,斷言只是匹配一個位置,并不匹配一個具體的字符,所以是零寬

/^(?<=(?:Chapter|Section)[ t]*)d+$)/這個正則

  1. 首先匹配字符串的開始;
  2. 然后是一個斷言,這個斷言用于判斷該位置前面的字符滿足Chapter|Section)[ t]*,注意此時匹配的位置并未發(fā)生改變,還是在字符串的開始;
  3. 然后匹配1到多個數(shù)字,注意開始匹配的位置還是在字符串的開始;
  4. 然后是字符串的結(jié)尾;

綜上,結(jié)合1,3和4,這個字符串就是由1到多個數(shù)字組成的;結(jié)合2,這個字符串開始的前面還需要匹配一些字符,這明顯是矛盾的,一個字符串的開始位置前面怎么還會有字符。所以這個正則什么也匹配不了。

/(?<=(?:Chapter|Section)[ t]*)d+$)/去掉^以后,這個正則匹配成功的條件是在字符串中存在這樣一個位置,這個位置前面滿足Chapter|Section)[ t]*,后面是1到多個數(shù)字,然后是字符串的結(jié)尾。

久礙你 回答

https://docs.mongodb.com/manu...
最后發(fā)現(xiàn)php操作mongodb其實就是對mongodb操作的一種映射,可以直接去看mongodb的官方文檔,然后按照規(guī)則傳參

風(fēng)畔 回答
SELECT cls.id AS lesson_id,
   c.id AS course_id,
   cl.id AS course_level_id,
   cu.id AS course_unit_id
FROM course c 
INNER JOIN course_level cl 
  ON c.id = cl.course_id
INNER JOIN course_unit cu
  ON c.id = cu.course_id
    AND cl.id = cu.course_level_id
INNER JOIN course_lesson cls
  ON c.id = cls.course_id
    AND cl.id = cls.course_level_id
    AND cu.id = cls.course_unit_id
ORDER BY c.sort, c.id, 
    cl.sort, cl.id, 
    cu.sort, cu.id,
    cls.sort, cls.id
卟乖 回答
親測可用:
class BaseActiveController extends \yii\rest\ActiveController
{
    public function behaviors()
    {
        $behaviors = parent::behaviors();

        $behaviors['timeFilter'] = [
            'class' => 'app\filters\ActionTimeFilter',
            'except'=>['test']
        ];

        return $behaviors;
    }
}
值得注意的是,behaviors() 中需要繼承父類 behaviors() 方法返回的內(nèi)容,否則父類 behaviors()就會被完全覆蓋了。
臭榴蓮 回答

rewrite規(guī)則百度即可。
可以參考nginx配置laravel