PHP ?? ?? ?? (1) ???? ?? ?? ??
Aug 08, 2016 am 09:23 AM?? ??? ?? ???? ????? ?? ?? ????
MYCLASS_PROTERTY_* ?? ??? ???? ??? ????.
<code>zend_class_entry *myclass_ce; zend_function_entry myclass_methods[] = { PHP_FE_END }; PHP_MINIT_FUNCTION(myext) { zend_class_entry ce; INIT_CLASS_ENTRY(ce, <span>"MyClass"</span>, myclass_methods); myclass_ce = zend_register_internal_class(&ce TSRMLS_CC); zend_<span>declare</span>_class_constant_string(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_VERSION), PHP_SLIM_VERSION); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_CONTAINER), ZEND_ACC_PUBLIC TSRMLS_CC); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_APPS), ZEND_ACC_STATIC|ZEND_ACC_PROTECTED TSRMLS_CC); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_NAME), ZEND_ACC_PROTECTED TSRMLS_CC); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_ERROR), ZEND_ACC_PROTECTED TSRMLS_CC); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_NOTFOUND), ZEND_ACC_PROTECTED TSRMLS_CC); zend_<span>declare</span>_property_null(myclass_ce, ZEND_STRL(MYCLASS_PROTERTY_NAME_MIDDLEWARE), ZEND_ACC_PROTECTED TSRMLS_CC); <span>return</span> SUCCESS; }</code>
? ??? ? ?? ??? ?????.
myclass ???? ?? ??? ?????? ??? ??????. PHP ??? ??? ????.
<code><span><span>class</span><span>MyClass</span> { public $myArray = array<span>()</span>; } /* 對應(yīng)的<span>C</span>代碼 */ zval *myArray; <span>MAKE_STD_ZVAL</span><span>(<span>myArray</span>)</span>; array_init<span>(<span>myArray</span>)</span>; zend_declare_property<span>(<span>myclass_ce</span>, <span>ZEND_STRL(MYCLASS_PROTERTY_NAME_MYCLASS)</span>, <span>myArray</span>, <span>ZEND_ACC_PUBLIC</span><span>TSRMLS_CC</span>)</span>;</span></code>
? C ??? ?? ???? ? ??? ???? ?????. MyClass()? ??? ? ??? ??????.
<code>Internal zval<span>'s</span> can<span>'t</span> be arrays, objects <span>or</span> resources</code>
zend? ?? ??? ?? ??? ????.
<code><span>if</span> (ce-><span><span>type</span> & <span>ZEND_INTERNAL_CLASS</span>) <span>{ <span>switch</span>(<span>Z_TYPE_P(property)</span>) { <span>case</span><span>IS_ARRAY</span>: <span>case</span><span>IS_CONSTANT_ARRAY</span>: <span>case</span><span>IS_OBJECT</span>: <span>case</span><span>IS_RESOURCE</span>: <span>zend_error</span>(<span>E_CORE_ERROR</span>, "<span>Internal</span><span>zval's</span><span>can't</span><span>be</span><span>arrays</span>, <span>objects</span><span>or</span><span>resources</span>"); <span>break</span>; <span>default</span>: <span>break</span>; }</span></span> }</code>
zend_register_internal_class? ???? myclass_ce? ZEND_INTERNAL_CLASS??, ?? zend_declare_property? myArray ????? IS_ARRAY ????? ?? ??? ?????.
? ?? ??? ??????
?? ??? ??? ????. http://grokbase.com/t/php/php-internals/07a4b14xvb/php-dev-how-declare-protected-array-property-at-internal - class-properly ??? 2007?? ?????. PHP5.4 ??? ???? ??? ???? ? ??? ?????. ????? ????? ???? ?? ??? ???? ???? ??? ?????. .
<code>PHP_METHOD(myclass, __construct) { zval <span>*apps</span>, <span>*pThis</span>; pThis = getThis(); MAKE_STD_ZVAL(apps); array_init(apps); add_property_zval_ex(pThis, ZEND_STRL(SLIM_SLIM_PROTERTY_NAME_APPS), apps); }</code>
? ?? ??? ???? PHP ??
<code><span><span>class</span><span>MyClass</span> {</span><span><span>function</span><span>__construct</span><span>()</span> {</span><span>$this</span>->app = <span>array</span>(); } }</code>
? ??? PHP ?? ?? ?? (1) ??? ???? ?? ??? ??? ??? ???? ???, PHP ????? ??? ?? ????? ??? ???? ?????.

? AI ??

Undress AI Tool
??? ???? ??

Undresser.AI Undress
???? ?? ??? ??? ?? AI ?? ?

AI Clothes Remover
???? ?? ???? ??? AI ?????.

Clothoff.io
AI ? ???

Video Face Swap
??? ??? AI ?? ?? ??? ???? ?? ???? ??? ?? ????!

?? ??

??? ??

???++7.3.1
???? ?? ?? ?? ???

SublimeText3 ??? ??
??? ??, ???? ?? ????.

???? 13.0.1 ???
??? PHP ?? ?? ??

???? CS6
??? ? ?? ??

SublimeText3 Mac ??
? ??? ?? ?? ?????(SublimeText3)

??? ??











PHP? ??? ??? ? "????: ???? ?? ??"??? ?? ???? ??? ? ????. ? ??? ????? ???? ??? ????? ??? ??? ???? ?? ??? ????? ??? ?????. ???? ? ??? ???? ??? ?????? ??? ? ?? ??? ?? ?????. ?? ??? ??? ? ??? ???? ?? ??? ?????. ???? ??? ????? ????? ?? ??? ?? ?? ?????. ?: ??

Oracle ?? ????? ?? ??, ?? ??, ?? ?? ? ???? ??? ?????. ??? ??: 1. PL/SQL ???? DECLARE ?? ???? ??? ??? ? ????. 2. ??? PL/SQL ??? ??? ??? ? ?? ????. 3. PL/SQL?? ???? ?? ?? ?? ?? ??? ???? ?????. 4. ???? ??? PL/SQL ??? ??? ??? ??? ?? ?????.

PHP ??: ??? ???? ??? ???? ? PHP ?? ???? ?? ??? ?? ???? ?? ???? ??? ? ????. ???? ??? ???? ?(???? ??? ???? ?). ? ??? ????? ?? ??? ?? ??? ??? ?????? ???? ????? ? ? ?????. ? ????? ?? ?? ?????.

PHP ?? ?????: ZendFramework ?? ???? ZendFramework? PHP?? ???? ?? ZendTechnologies?? ?? ???? ?? ?? ? ??? ????????. ZendFramework? MVC ??? ??? ???? Web2.0 ?????? ? Web Serve ??? ???? ?? ??? ??? ?? ????? ???? ?????. ZendFramework? PHP ?????? ?? ?? ?? ???? ??? ??? ??? ??? ????.

Zend Framework?? ?? ??? ?? ACL(AccessControlList)? ???? ?? ??: ? ???????? ?? ??? ??? ?????. ?? ???? ??? ??? ?? ???? ???? ???? ? ??? ?? ?? ???? ?????. Zend ?????? ACL(AccessControlList) ?? ??? ???? ?? ??? ???? ??? ??? ?????. ? ????? Zend Framework?? ACL? ???? ??? ?????.

Vue? ??? ????? ??? ?? ???? JavaScript ????????. ?? ???? ??? ??? ??? ??? ? ????. ???? ?? ? ??? "TypeError:Cannotreadproperty'XXX'ofnull"???. ?? ???? ? ??? ??? ?? ??? ???????. ?? ? ??? ??? ??? ?????. ??? ???? ???? ????? ? ?,

TypeError:Vue?? ??? ??'XXX'ofun? ?? ? ????. ??? ?? ???? Vue? ???? ???? ??? ?? ???? ?? ?? ???? ?? TypeError:Cannotreadproperty'XXX'ofundefine ??? ?? ??? ? ????. ? ??? ????? ???? ?? ??? ?????? ? ? ?????. ????

PHP? ZendOptimizer? ???? ????. ??? ?????? PHP ?? ?? PHP? ZendOptimizer? ???? ??? ??? ??? ? ???, ?? ?? ?? PHP ??? ??? ???? ?? ? ????. ? ?? ??? ???? ?? ? ?? ??? ??? ???. ???? ? ?? ??? ?? ??? ?? ?? ??? ???? ????. 1. ZendOptimizer? ???? ?????? ??: ?? ZendOptimizer? ???? ?????? ???? ???.
