PDA

View Full Version : فراخوانی نکردن تابع unset و دریافت ارور Parse error: syntax error, unexpected 'unset' (T_UNSET)



amin7x
یک شنبه 19 مهر 1394, 14:44 عصر
سلام دوستان
من توی کلاسم یک تابع دارم به نام delete product این تابع کارش اینکه سشن مربوط به اون محصول رو حذف کنه.


public function deleteProduct ($product_id) {
$product_id = htmlentities(intval($product_id));
$done = unset($_SESSION['cart'][$product_id]);
if($done) {
echo "<script>alert('محصول با موفقیت از سبد خرید شما حذف شد');</script>";
} else {
"<script>alert('مشکلی در حذف محصول پیش آمده');</script>";
}
}


حالا مشکلم اینکه با اینکه من تابع رو فراخوانی نکردم توی کد اصلی به محض بازکردن صفحه موررنظر با ارور زیر مواجه میشم.



Parse error: syntax error, unexpected 'unset' (T_UNSET) in ***class.product.php on line 5


ممنون میشم کمکم کنید

Mohammadsgh
یک شنبه 19 مهر 1394, 17:22 عصر
پیش از unset کردن یک شرط بزارید که اگر $_SESSION['cart'][$product_id] بود unset بشه

kabootar_y
یک شنبه 19 مهر 1394, 18:40 عصر
public function deleteProduct ($product_id) {
$product_id = htmlentities(intval($product_id));
$done = (isset($_SESSION['cart'][$product_id])? unset($_SESSION['cart'][$product_id]) : false;
if($done) {
echo "<script>alert('محصول با موفقیت از سبد خرید شما حذف شد');</script>";
} else {
"<script>alert('مشکلی در حذف محصول پیش آمده');</script>";
}
}

amin7x
یک شنبه 19 مهر 1394, 23:56 عصر
همچنان مشکل قبلی پا برجاست

Unique
دوشنبه 20 مهر 1394, 00:50 صبح
اینو چک کنید :

$done = (isset($_SESSION['cart']) && isset($_SESSION['cart'][$product_id]) ? unset($_SESSION['cart'][$product_id]) : false;

arta.nasiri
دوشنبه 20 مهر 1394, 13:06 عصر
سلام
تابع unset هیچ مقدار بازگشتی نداره پس طبیعتا نمیتونید مقدار بازگشتی از اونو داخل یه متغییر بریزید واسه همین ارور میده. واسه اینکه مطمئن بشید مقداری ک واسش ارسال کردید unset شده میتونید از تابع isset استفاده کنید. بنظر من دلیلی نداره از isset استفاده کنید چون بهرحال تابع unset کار خودشو میکنه یعنی اگه آدرس متغییر ارسالی وجود داشته باشه پاک میشه اگه وجود نداشته باشه باز مهم نیست. پس کد زیر منطقی تره بنظرم.


function deleteProduct ($product_id) {
$product_id = htmlentities(intval($product_id));
unset($_SESSION['cart'][$product_id]);
echo "<script>alert('محصول با موفقیت از سبد خرید شما حذف شد');</script>";}