first seen:
Array to string conversion
Undefined variable
next:
no bug, but full array(remove it)
last:
wrong result value from first "echo" (do fix it)
1. Parse error: syntax error, unexpected '->' (T_OBJECT_OPERATOR), expecting ',' or ';'
2. Cannot instantiate abstract class
3. Class ... contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
4. Undefined property: ...
5. Undefined index: ...
6. Call to a member function get() on null
...
(ไม่จำเป็นต้องเจอทุกข้อ)
Code (PHP)
interface Interface1
{
public function set($name, $var);
public function get($name);
}
abstract class A implements Interface1
{
private $vars = [];
public function set($name, $var)
{
$this->vars[$name] = $var;
}
}
echo new A->$var;
3.3
ปรับเปลี่ยน 3.2 ให้สามารถกำหนดและแสดงค่า private property ($vars)
จาก class A ได้ โดยไม่ต้องสร้าง object และไม่จำเป็นต้องเรียกแบบ "method chaining"
buggy
1. Cannot make non static method Interface1::set() static in class A
2. Using $this when not in object context
3. Access to undeclared static property
...
และอื่นๆ ตามที่เห็น
5.2
จงแก้ปัญหาการ extends class พร้อมกันมากกว่า 1 class จาก namespace อื่น
Code (PHP)
namespace FOO;
class Hello {
public function sayHello() {
echo 'Hello ';
}
}
class World {
public function sayWorld() {
echo 'World';
}
}
namespace BAR;
class MyHelloWorld extends \FOO\{Hello, World} {
public function sayExclamationMark() {
echo '!';
}
}
$o = new MyHelloWorld();
$o->sayHello();
$o->sayWorld();
$o->sayExclamationMark();
In computer programming, the term hooking covers a range of techniques used to alter or augment the behaviour of an operating system, of applications, or of other software components by intercepting function calls or messages or events passed between software components. Code that handles such intercepted function calls, events or messages is called a hook.