<?php
/*
* README
* ======
*
* This is simple source code for bookstore application.
* The functional requirement that you needed to help you understand the user story has been written.
*
* Your mission is :
*
* 1. Complete these source code at "PLACE YOUR CODE HERE" parts and run them without any error.
* 2. The result has to be:
* 1:true
* 2:true
* 3:true
* 4:true
* 5:true
* 3. Send the source code file with your answers.
*/
// PHP v5.4
$app = new TestApplication;
$app -> run ( ) ;
class TestApplication {
public function run( ) {
$shop = new Shop;
new Book( 'The Fellowship of the Ring' , 'J.R.R. Tolkien' ) ,
new Book( 'The Two Towers' , 'J.R.R. Tolkien' ) ,
new Book( 'The Return of the King' , 'J.R.R. Tolkien' ) ,
new Book( 'The Hobbit' , 'J.R.R. Tolkien' ) ,
new Book( 'Harry Potter and the Sorcerer\'s Stone' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Chamber of Secrets' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Prisoner of Azkaban' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Goblet of Fire' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Order of the Phoenix' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Half-Blood Prince' , 'J.K. Rowling' ) ,
new Book( 'Harry Potter and the Deathly Hallows' , 'J.K. Rowling' ) ,
) ;
foreach ( $books as $book ) {
$shop -> bookAdd ( $book ) ;
}
$ahmad = new Person( 'Ahmad Ramadhan' ) ;
$available = $shop -> bookIsAvailable ( 'The Two Towers' ) ;
if ( $available ) {
$book = $shop -> bookGet ( 'The Two Towers' ) ;
$ahmad -> addToBag ( $book ) ;
echo "1: true" ;
} else {
echo "1: false" ;
}
echo "\n " ;
}
}
class Shop {
public $listBook = [ ] ;
private $find_book ;
function bookAdd( $books ) {
$this -> listBook = array_push ( $this -> listBook , $books ) ; }
function bookIsAvailable( $names_book ) {
echo $names_book ;
echo "/n" ;
$this -> find_book = array_search ( $names_book , $this -> listBook ) ; if ( $this -> find_book ) {
return true ;
} else {
return false ;
}
}
function bookListByAuthor( $author ) {
}
function bookGet( $name_book ) {
}
}
class Book {
public $title_book ;
public $author ;
public function __construct( $title_book , $author ) {
$this -> title_book = $title_book ;
$this -> author = $author ;
}
}
class Person
{
public $firstname ;
private $book = [ ] ;
public function __construct( $firstname ) {
$this -> firstname = $firstname ;
}
function addToBag( $books ) {
}
}
PD9waHAKCi8qCiogUkVBRE1FCiogPT09PT09CioKKiBUaGlzIGlzIHNpbXBsZSBzb3VyY2UgY29kZSBmb3IgYm9va3N0b3JlIGFwcGxpY2F0aW9uLgoqIFRoZSBmdW5jdGlvbmFsIHJlcXVpcmVtZW50IHRoYXQgeW91IG5lZWRlZCB0byBoZWxwIHlvdSB1bmRlcnN0YW5kIHRoZSB1c2VyIHN0b3J5IGhhcyBiZWVuIHdyaXR0ZW4uCioKKiBZb3VyIG1pc3Npb24gaXMgOgoqCiogMS4gQ29tcGxldGUgdGhlc2Ugc291cmNlIGNvZGUgYXQgIlBMQUNFIFlPVVIgQ09ERSBIRVJFIiBwYXJ0cyBhbmQgcnVuIHRoZW0gd2l0aG91dCBhbnkgZXJyb3IuCiogMi4gVGhlIHJlc3VsdCBoYXMgdG8gYmU6CiogICAgMTp0cnVlCiogICAgMjp0cnVlCiogICAgMzp0cnVlCiogICAgNDp0cnVlCiogICAgNTp0cnVlCiogMy4gU2VuZCB0aGUgc291cmNlIGNvZGUgZmlsZSB3aXRoIHlvdXIgYW5zd2Vycy4KKi8KCi8vIFBIUCB2NS40CiRhcHAgPSBuZXcgVGVzdEFwcGxpY2F0aW9uOwokYXBwLT5ydW4oKTsKCmNsYXNzIFRlc3RBcHBsaWNhdGlvbiB7CiAgICBwdWJsaWMgZnVuY3Rpb24gcnVuKCkgewogICAgICAgICRzaG9wICA9IG5ldyBTaG9wOwogICAgICAgICRib29rcyA9IGFycmF5KAogICAgICAgICAgICBuZXcgQm9vaygnVGhlIEZlbGxvd3NoaXAgb2YgdGhlIFJpbmcnLCAnSi5SLlIuIFRvbGtpZW4nKSwKICAgICAgICAgICAgbmV3IEJvb2soJ1RoZSBUd28gVG93ZXJzJywgJ0ouUi5SLiBUb2xraWVuJyksCiAgICAgICAgICAgIG5ldyBCb29rKCdUaGUgUmV0dXJuIG9mIHRoZSBLaW5nJywgJ0ouUi5SLiBUb2xraWVuJyksCiAgICAgICAgICAgIG5ldyBCb29rKCdUaGUgSG9iYml0JywgJ0ouUi5SLiBUb2xraWVuJyksCiAgICAgICAgICAgIG5ldyBCb29rKCdIYXJyeSBQb3R0ZXIgYW5kIHRoZSBTb3JjZXJlclwncyBTdG9uZScsICdKLksuIFJvd2xpbmcnKSwKICAgICAgICAgICAgbmV3IEJvb2soJ0hhcnJ5IFBvdHRlciBhbmQgdGhlIENoYW1iZXIgb2YgU2VjcmV0cycsICdKLksuIFJvd2xpbmcnKSwKICAgICAgICAgICAgbmV3IEJvb2soJ0hhcnJ5IFBvdHRlciBhbmQgdGhlIFByaXNvbmVyIG9mIEF6a2FiYW4nLCAnSi5LLiBSb3dsaW5nJyksCiAgICAgICAgICAgIG5ldyBCb29rKCdIYXJyeSBQb3R0ZXIgYW5kIHRoZSBHb2JsZXQgb2YgRmlyZScsICdKLksuIFJvd2xpbmcnKSwKICAgICAgICAgICAgbmV3IEJvb2soJ0hhcnJ5IFBvdHRlciBhbmQgdGhlIE9yZGVyIG9mIHRoZSBQaG9lbml4JywgJ0ouSy4gUm93bGluZycpLAogICAgICAgICAgICBuZXcgQm9vaygnSGFycnkgUG90dGVyIGFuZCB0aGUgSGFsZi1CbG9vZCBQcmluY2UnLCAnSi5LLiBSb3dsaW5nJyksCiAgICAgICAgICAgIG5ldyBCb29rKCdIYXJyeSBQb3R0ZXIgYW5kIHRoZSBEZWF0aGx5IEhhbGxvd3MnLCAnSi5LLiBSb3dsaW5nJyksCiAgICAgICAgKTsKICAgICAgICBmb3JlYWNoICgkYm9va3MgYXMgJGJvb2spIHsKICAgICAgICAgICAgJHNob3AtPmJvb2tBZGQoJGJvb2spOwogICAgICAgIH0KICAgICAgICAkYWhtYWQgPSBuZXcgUGVyc29uKCdBaG1hZCBSYW1hZGhhbicpOwogICAgICAgICRhdmFpbGFibGUgPSAkc2hvcC0+Ym9va0lzQXZhaWxhYmxlKCdUaGUgVHdvIFRvd2VycycpOwogICAgICAgIGlmICgkYXZhaWxhYmxlKSB7CgogICAgICAgICAgICAkYm9vayA9ICRzaG9wLT5ib29rR2V0KCdUaGUgVHdvIFRvd2VycycpOwogICAgICAgICAgICAkYWhtYWQtPmFkZFRvQmFnKCRib29rKTsKICAgICAgICAgICAgZWNobyAiMTogdHJ1ZSI7CiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAgIGVjaG8gIjE6IGZhbHNlIjsKICAgICAgICB9CiAgICAgICAgZWNobyAiXG4iOwogICAgfQp9CgoKY2xhc3MgU2hvcCB7CiAgICBwdWJsaWMgJGxpc3RCb29rID0gW107CiAgICBwcml2YXRlICRmaW5kX2Jvb2s7CiAgICAKICAgIGZ1bmN0aW9uIGJvb2tBZGQoJGJvb2tzKXsKICAgIAkkYm9va3MgPSAgKGFycmF5KSAkYm9va3M7CiAgICAgICR0aGlzLT5saXN0Qm9vayA9IGFycmF5X3B1c2goJHRoaXMtPmxpc3RCb29rLCAkYm9va3MgKTsgICAKICAgIH0KCiAgICBmdW5jdGlvbiBib29rSXNBdmFpbGFibGUoJG5hbWVzX2Jvb2spewogICAgCWVjaG8gJG5hbWVzX2Jvb2s7CiAgICAJZWNobyAiL24iOwogICAgCXZhcl9kdW1wKCR0aGlzLT5saXN0Qm9vayk7CiAgICAgICAkdGhpcy0+ZmluZF9ib29rPSBhcnJheV9zZWFyY2goJG5hbWVzX2Jvb2ssICR0aGlzLT5saXN0Qm9vayk7CiAgICAgICBpZigkdGhpcy0+ZmluZF9ib29rKXsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgIH1lbHNlewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgIH0KICAgIH0KICAgIAogICAgZnVuY3Rpb24gYm9va0xpc3RCeUF1dGhvcigkYXV0aG9yKXsKICAgICAgICAKICAgIH0KICAgIAogICAgZnVuY3Rpb24gYm9va0dldCgkbmFtZV9ib29rKXsKICAgICAgICAKICAgIH0KICAgIAogICAgCgoKICAgIAp9CgoKY2xhc3MgQm9vayB7CiAgcHVibGljICR0aXRsZV9ib29rOwogIHB1YmxpYyAkYXV0aG9yOwogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkdGl0bGVfYm9vaywgJGF1dGhvcil7CiAgICAgICR0aGlzLT50aXRsZV9ib29rID0gJHRpdGxlX2Jvb2s7CiAgICAgICR0aGlzLT5hdXRob3IgPSAkYXV0aG9yOwogIH0KICAgIAp9CgpjbGFzcyBQZXJzb24gCnsKICBwdWJsaWMgJGZpcnN0bmFtZTsKICBwcml2YXRlICRib29rPVtdOwogIAogIHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZmlyc3RuYW1lKXsKICAgICAgJHRoaXMtPmZpcnN0bmFtZSA9ICRmaXJzdG5hbWU7CiAgfQogICAgICAKICBmdW5jdGlvbiBhZGRUb0JhZygkYm9va3MpewogICAgYXJyYXlfcHVzaCgkdGhpcy0+Ym9vaywgJGJvb2tzKTsKICB9Cgp9
stdout
The Two Towers/nNULL
1: false
stderr
PHP Warning: array_push() expects parameter 1 to be array, int given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_push() expects parameter 1 to be array, null given in /home/1QyjZA/prog.php on line 67
PHP Warning: array_search() expects parameter 2 to be array, null given in /home/1QyjZA/prog.php on line 74