П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
Поиск по сайту:

О проекте

     HTML & JavaScript
     XML & XSLT
     Unix Shell





Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 164 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 93002 раз(а).

Учебник HTML.
Просмотров 81557 раз(а).

Руководство по PHP5.
Просмотров 51918 раз(а).

Хостинг через призму DNS.
Просмотров 60363 раз(а).

Подборка текстов стандартных документов.
Просмотров 50541 раз(а).

Учебник PHP - Самоучитель
Просмотров 57879 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 59380 раз(а).

Внешние атаки...
Просмотров 48929 раз(а).

Учебник PHP.
Просмотров 42429 раз(а).

SSI в примерах.
Просмотров 32721 раз(а).

| Добавить в избранное | Сделать стартовой | Помощь

Руководство по PHP
Пред. След.


(no version information, might be only in CVS)

Runkit_Sandbox_Parent --  Runkit Anti-Sandbox Class


void Runkit_Sandbox_Parent::__construct ( void )

Instantiating the Runkit_Sandbox_Parent class from within a sandbox environment created from the Runkit_Sandbox class provides some (controlled) means for a sandbox child to access its parent.

Замечание: Sandbox support (required for runkit_lint(), runkit_lint_file(), and the Runkit_Sandbox class) is only available with PHP 5.1 or specially patched versions of PHP 5.0 and requires that thread safety be enabled. See the README file included in the runkit package for more information.

In order for any of the Runkit_Sandbox_Parent features to function. Support must be enabled on a per-sandbox basis by enabling the parent_access flag from the parent's context.

Пример 1. Working with variables in a sandbox

= new Runkit_Sandbox();
$sandbox['parent_access'] = true;

Accessing the Parent's Variables

Just as with sandbox variable access, a sandbox parent's variables may be read from and written to as properties of the Runkit_Sandbox_Parent class. Read access to parental variables may be enabled with the parent_read setting (in addition to the base parent_access setting). Write access, in turn, is enabled through the parent_write setting.

Unlike sandbox child variable access, the variable scope is not limited to globals only. By setting the parent_scope setting to an appropriate integer value, other scopes in the active call stack may be inspected instead. A value of 0 (Default) will direct variable access at the global scope. 1 will point variable access at whatever variable scope was active at the time the current block of sandbox code was executed. Higher values progress back through the functions that called the functions that led to the sandbox executing code that tried to access its own parent's variables.

Пример 2. Accessing parental variables

= new Runkit_Sandbox();
$php['parent_access'] = true;
$php['parent_read'] = true;

$test = "Global";

$php->eval('$PARENT = new Runkit_Sandbox_Parent;');

$php['parent_scope'] = 0;

$php['parent_scope'] = 1;

$php['parent_scope'] = 2;

$php['parent_scope'] = 3;

$php['parent_scope'] = 4;

$php['parent_scope'] = 5;

one() {
$test = "one()";

two() {
$test = "two()";

three() {
$test = "three()";

Результат выполнения данного примера:

string(6) "Global"
string(7) "three()"
string(5) "two()"
string(5) "one()"
string(6) "Global"
string(6) "Global"

Calling the Parent's Functions

Just as with sandbox access, a sandbox may access its parents functions providing that the proper settings have been enabled. Enabling parent_call will allow the sandbox to call all functions available to the parent scope. Language constructs are each controlled by their own setting: print() and echo() are enabled with parent_echo. die() and exit() are enabled with parent_die. eval() is enabled with parent_eval while include(), include_once(), require(), and require_once() are enabled through parent_include.

Пред. Начало След.
Runkit_Sandbox Уровень выше runkit_class_adopt

Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:

Copyright © 2005-2016 Project.Net.Ru