PHP 要使用 count() 來計算 stdClass Object 數量, 計算出來的數字會有問題, 需要強制轉換成陣列來作計算.
註: 強制轉換方法: (array)$obj_var; 於是就可以 count((array)$obj_var);
個人筆記, 記錄關於 系統、程式、新聞 與 日常生活 等資訊
PHP 要使用 count() 來計算 stdClass Object 數量, 計算出來的數字會有問題, 需要強制轉換成陣列來作計算.
註: 強制轉換方法: (array)$obj_var; 於是就可以 count((array)$obj_var);
Facebook 的黑客之道 的 簡短摘要:
Facebook 使用 PHP 當底層, 為了 節省資源 + 加快速度, 從最底層(PHP)著手, 發展了下述幾套:
PHP 要呼叫 Shell 執行程式的時候, 偷懶有 `ls` 可以使用, 不過, 正規點可以使用 system()、exec()、shell_exec() 這三個 Function 來操作.
那 system()、exec()、shell_exec() 這三個 Function 使用上有何差異呢?
想用 PHP 來產生 Apache access.log 的日期內容, date() 的參數如下:
<?php echo date('d/M/Y:H:i:s O'); ?>
PHP 套件、函式庫管理官方版都是使用 PEAR、Pecl 等, 但是 PEAR 已經很久沒動靜了, Pecl 的 Package 數量直接瀏覽的話, 心算應該都可以加總完, 所以大家都往其它方向走, ex: PHP Class Scripts.
註: PEAR 套件製作比較繁瑣, 若想製作 PEAR 套件可以使用此工具: Template for Jenkins Jobs for PHP Projects
現在 PHP 有個困擾就是, Package 分散在各地, 需要分開下載、安裝, 升級、管理是個很大的困擾, 不過此問題看來 Composer 都解決掉了, 於是 Package 如雪片般的出現, 詳見: Packagist
註: Amazon Cloud 官方 PHP 套件使用 Composer 來管理.
簡單的一個判斷式, 如下述:
<?php $types = 0; if ($types == 'abc') echo 'a'; else echo 'b'; ?>
答案是印出 a (預期應該要印出 b, 結果卻印出 a)
想要過濾掉換行等字元, 最常用的就是 trim(), trim() 預設會過濾掉於 "此字串前後" 的 下述字元:
Apache、Nginx 會去設定檔案過期時間, 然後使用者的瀏覽器就會 Cache 起來, 下次訪問就不用再要一次檔案, 但是如果檔案更新了, 瀏覽器知道檔案需要來重新抓取呢? (如何防止讀取到 Cache 的檔案?)
一個最簡單的方式, 就是更改 URL, 如下述:
在 Windows 的換行是 "\r\n", 在 Unix 系列的換行是 "\n", 在 PHP 裡面 "\r" 有特殊意義.