Ngắn gọn về cách sử dụng &,!,@ full, parent::__construct() (ok)
& dùng để thay đổi giá trị biến ở bên ngoài
Ví dụ 1:
Class
<?php
class A {
function foo(&$var) {
$this->result1 = &$var;
$this->result2 = $var;
$var++;
}
}
$var = 3;
$test = new A();
$test->foo($var);
echo $test->result1; // Result is 4
echo $test->result2; // Result is 3
?>
Function
<?php
function changeString(&$sTest1, $sTest2, $sTest3) {
$sTest1 = 'changed';
$sTest2 = 'changed';
$sTest3 = 'changed';
};
$sOuterTest1 = 'original';
$sOuterTest2 = 'original';
$sOuterTest3 = 'original';
changeString($sOuterTest1, $sOuterTest2, $sOuterTest3);
echo ("sOuterTest1 is $sOuterTest1 <hr/>");
echo ("sOuterTest2 is $sOuterTest2 <hr/>");
echo ("sOuterTest3 is $sOuterTest3 <hr/>");
// sOuterTest1 is changed
// sOuterTest2 is changed
// sOuterTest3 is original
?>
@ dùng để không gây ra cảnh báo
<?php
// điều này hoạt động cho bất kỳ biểu thức, không chỉ các chức năng:
$value = @$cache[$key];
// sẽ không đưa ra thông báo nếu chỉ số $ key không tồn tại.
?>
! Tạo ra một lỗi cố ý tức là nó ẽ trả về false
/* Lỗi tập tin cố ý */
$my_file = !@$cache[$key];
var_export($my_file);
sẽ trả về false
parent::__construct() kế thừa toàn bộ construct bên parent
<?php
if (!class_exists('Form')) {
require_once 'form.php';
}
class AppModel {
public $form = null;
protected $rules = null;
public function __construct() {
$this->form = new Form();
$this->form->setRules($this->rules);
}
}
?>
<?php
if(!class_exists("AppModel")) {
require_one "appmodel.php";
}
class User extends AppModel {
protected $rules = array(
"text" => array(
"form" => array(
"type" => "text",
),
"notEmpty" => array(
"rule" => "notEmpty",
"message" => 'MSG_ERR_NOTEMPTY',
),
),
"email" => array(
"form" => array(
"type" => "email",
),
"notEmpty" => array(
"rule" => "notEmpty",
"message" => 'MSG_ERR_NOTEMPTY',
),
"isEmail" => array(
"rule" => "email",
"message" => 'MSG_ERR_EMAIL',
),
),
"password" => array(
"form" => array(
"type" => "password",
),
"notEmpty" => array(
"rule" => "notEmpty",
"message" => 'MSG_ERR_NOTEMPTY',
),
),
"fullname" => array(
"form" => array(
"type" => "text",
),
"notEmpty" => array(
"rule" => "notEmpty",
"message" => 'MSG_ERR_NOTEMPTY',
),
),
"address" => array(
"form" => array(
"type" => "textarea",
),
"notEmpty" => array(
"rule" => "notEmpty",
"message" => 'MSG_ERR_NOTEMPTY',
),
),
);
public function __construct() {
parent::__construct();
}
}
?>
Last updated