php-internals

    1熱度

    2回答

    我已經看過幾個answers on object destruction order,並且都指出順序不能保證。由於我無法控制順序,我想在所有對象被銷燬後調用一個函數。 register_shutdown_function在對象銷燬之前被調用,因此不是一個選項。我看過像set_error_handler這樣的使用對象的技巧,所以它被調用爲「遲到」,但這還不夠。 關於問題的一些背景知識,這是一個com

    0熱度

    2回答

    下面的c代碼爲php7引用計數會發生什麼? 在PHP7 zval s的棧上創建的,所以引用問題就出來了: zval destination; array_init(destination); { // scope begin zval val; // does val's refcount incremented here or val is copied?

    0熱度

    1回答

    我在PHP 7中工作,我有一種情況,我想傳遞一個長度爲0的字符串。所以我們如何生成長度爲0的zend_string變量。 我試着將NULL分配給zend_string變量,但是行代碼崩潰,因爲它試圖取消引用NULL。所以我猜測,我們需要分配內存以zend_string變量和全NULL值或字符串長度爲0

    4熱度

    1回答

    可以說,我只是做這個 $arr = array(); for ($i = 0; $i < 10; $i++) $arr[] = $i; 所以我存儲10個整數數組中。如果整數是32b,那麼內存開銷應該是40字節。問題是,我沒有告訴PHP它是一個整數,所以它要麼將其存儲爲其他東西? (js喜歡製作雙打)或者保留額外的數據來提醒自己它是什麼?這10個數字+該陣列實際佔用系統內存多少內存? 它很重要

    0熱度

    1回答

    最近我看了一本關於PHP擴展的書,並準備寫一個函數,函數原型如下: array_groupBy(string $key, array $input, $forget = false):array 此函數的功能是組$input按照對應於該組的值$key,$forget表示基團後的數組是否需要刪除$key,$clourse是一個可調用類型,如果存在,則將對應於$key的值傳遞給閉包In側的功能,該

    1熱度

    2回答

    我在這裏新規範發現:https://wiki.php.net/rfc/void_return_type function lacks_return(): void { // valid } function returns_nothing(): void { return; // valid } function returns_void(): void {

    3熱度

    1回答

    我正在升級到php 7的php擴展,並且我想使用zend_register_resource刪除已在常規列表中註冊的資源,稍後我將使用zend_list_close關閉資源。關閉功能如下: PHP_FUNCTION(myFunc_cleanAndExit) { zval* rsrc = NULL; ... int res = zend_parse_param

    3熱度

    1回答

    我有一個包含文件,它定義了一個類,然後創建一個具有該類實例的全局以及一個返回全局(用於其他函數內的訪問)的函數。 代碼明智: class X { ... } global $x; $x = new X(); function x() { global $x; return $x; } 到目前爲止,一切似乎都很好。然後有一種情況(顯然)這個文件被多次包

    1熱度

    1回答

    我試圖編寫一個PHP模塊,用於檢測在php cgi文件中調用的zend內部函數。喜歡的代碼如下所示,我想在我的代碼中找到它的名字 - 'printf'。 <?php printf("Hello SO!");?> Now我hooked與一個named function此function「zend_set_user_opcode_handler'.However我am not able到get w

    -1熱度

    2回答

    他們似乎是同一回事,但卻不同。我不知道哪一個是哪個:我知道我們可以使用PDO作爲new PDO()並使用prepare()和query()方法從數據庫中獲取數據。那麼,如果這是在擴展列表中提到的PDO,那麼pdo_mysql和mysqlnd究竟是什麼(以俗語來說)?