среда, 30 ноября 2011 г.

Особенности вызова функций с передачей по ссылке

Как известно, при насильной передаче аргумента по ссылке в функцию, которая ожидает передачи по значению, пыха ругается (если в php.ini allow_call_time_pass_reference = off)..

[mechanic@mechanic trunk]$ php -r ' function a($inp) { echo $inp; } $b = "123"; a(&$b);'
Warning: Call-time pass-by-reference has been deprecated; If you would like to pass it by reference, modify the declaration of a().  If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file in Command line code on line 1
123

однако любопытно, что тот же вызов, выполненный ректально через call_user_func_array() такого не дает 
[mechanic@mechanic trunk]$ php -r ' function a($inp) { echo $inp; } $b = "123"; call_user_func_array("a", array(&$b));'
123


пятница, 25 ноября 2011 г.

Fedora 15, VirtualBox и amd_iommu.h

обновил федору до 15, но сейчас речь пойдет не о впечатлениях от гнома 3..
отказал VirtualBox 4.1.4
sudo /etc/init.d/vboxdrv setup
обламывался скомпилять модуль, аргументируя это отсутствием файла arch/x86/include/asm/amd_iommu.h
в инете много рапортов успешного решения этой проблемы методом копирования из исходников другого ядра, но вот подстава, у меня были исходники только текущего (kernel-PAE.i686, оно же kernel-PAE-2.6.41.1-1.fc15.i686)..
пришлось поставить левое
sudo yum install kernel-tuxonice-PAE-devel.i686
там нашел нужный файлик, скопировал, модуль собрался
вирт.машина при запуске ругалась на отсутствие интерфейса vboxnet0, пришлось перезапустить VirtualBox, после все запустилось