Make your PHP object available foreach and modify the properties with Private
Release: 2016-07-25 09:06:33
Original
976 people have browsed it
Play it when you are bored.
Traversing an object is actually just traversing a specific array type attribute in the object.
After PHP5, you can directly foreach, but the private members of the class cannot be accessed.
The object-oriented principle also does not allow class members to be directly accessed from the outside.
- /*
- * @class Sample
- * @remark The traversal object is actually just an array in the variable object; to enable the object to be traversed, the iterator interface needs to be implemented
- */
- class Sample implements iterator
- {
- private $v1 = '123';
- private $v2 = 'abc';
- private $v3 = array( 1, 2, 3 );
- public function rewind()
- {
- / *
- * get_object_vars Check the manual for this function to see its functions
- * Here, the Sample object implements the defined attributes instead of the dynamically generated attributes $data into an array,
- * Assign the group to $data
- * /
- $this->data = get_object_vars ( $this );
-
- /*
- * Point the cursor in the iterator interface to the first element of $data
- */
- reset( $this->data );
- }
-
- public function current() { return current( $this->data ); }
-
- public function key() { return key( $this->data ); }
-
- public function next() { return next( $this->data ); }
-
- public function valid() { return ( $this->current() !== false ); }
-
- }
-
- $s = new Sample();
-
- foreach( $s as $k=>$v ){ echo $k.'='.$v.'
';}
Copy code
|
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31